Ref = unescape(window.location.href).toLowerCase();if(Ref.substring(0,7) == "http://"){
Host = Ref.substring(7,Ref.length);
}
else{
Host = new String(Ref);
}
Host = Host.indexOf("/") > (-1) ? Host.split("/")[0] : Host;
Host = Host.indexOf("@") > (-1) ? Host.split("@")[1] : Host;
Host = Host.indexOf(":") > (-1) ? Host.split(":")[0] : Host;一个URL完整的是这样的
schema://user:[email protected]/path/file.asp?query=abc#hash
分离出来有点**....

解决方案 »

  1.   

    正则表达式,下面是我的一个翻页函数,可以参考。function goPage(pageNo, textBox)
    {
            if (arguments.length==2 && textBox!=null)
            {
                    pageNo = parseInt(textBox.value);
                    if (isNaN(pageNo))
                    {
                            alert("请输入数字!");
                            textBox.select();
                            textBox.focus();
                            return;
                    }
            }
            
            var href = location.href;
            var re = new RegExp("(.*?)\\?(.*)","ig");
            re.exec(href);
            var url = RegExp.$1;
            var paras = RegExp.$2;
            if (url=="") url=href;
            re = new RegExp("([^=]*?)=([^&]*)&?","ig");
            var newParas = "";
            var isReplaced = false;
            while(re.exec(paras) != null)
            {
                    if (newParas!="") newParas += "&";
                    if (RegExp.$1=="p")
                    {
                            newParas += "p=" + pageNo;
                            isReplaced = true;
                    }
                    else
                    {
                            newParas += RegExp.$1 + "=" + RegExp.$2;
                    }
            }
            
            if (!isReplaced){
                    if (newParas!="") newParas += "&";
                    newParas += "p=" + pageNo;
            }
            
            url += "?" + newParas;
            
            location = url;
    }
      

  2.   

    楼上各位兄弟的方法不错啊!
    ---------------------------------------------------
    http://kmok.cn
      

  3.   

    schema://user:[email protected]:80/path/file.asp?query=abc#hash忘了还有端口号这鸟玩意儿~~~
      

  4.   

    http://msdn.microsoft.com:80/scripting/default.htm/(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/RegExp.$1 包含 "http" 
    RegExp.$2 包含 "msdn.microsoft.com" 
    RegExp.$3 包含 ":80" 
    RegExp.$4 包含 "/scripting/default.htm"
      

  5.   

    完整的程序应该怎么弄,正则表达式我知道,但是在js中用却没用过.....
    希望写个完整的js程序出来
      

  6.   

    这个够完整了吧,拿去测试下<script language='javascript'>
    function chk_domain()
    {//检查域名
    var fieldVal = arguments[0];
    var re = /^(https|http):\/\/[\w]+(\.[\w]+)+(:\d+)?$/i; 
    if (re.test(fieldVal))
    showdiv(fieldVal);
    else
    {
    for(var i=fieldVal.length ; i>=0 ; i--)
    {
    var new_field = fieldVal.substr(0,i);
    if(re.test(new_field))
    {
    showdiv(new_field);
    return;
    }
    }
    }}
    function showdiv(flag)
    {
    divid.innerHTML = flag;
    }
    </script><INPUT TYPE="text" NAME="" size='100' value="http://community.csdn.net/Expert/PostNew.asp?room=304" onclick="chk_domain(this.value,'test');">
    <br>
    <div id=divid></div>
      

  7.   

    用location.hostname,location.pathname,location.port,location.protocol不行吗?
    可以分别得到域名,文件名,断口,协议