在javascript中找出相对的网址

时间:2010-10-12 08:09:19

标签: javascript

我想知道网址是相对还是不使用javascript。基本上我将传递url,如果url是相对附加当前url,即减去文件名。有人可以帮助我吗

例如: -

  

当前网址 = http://example.com/big/index.html

     

PASSED URL 1 = newindex.html
   OUTPUT = http://example.com/big/newindex.html

     

PASSED URL 2 = http://mysite.com/big/newindex.html
   OUTPUT = http://mysite.com/big/newindex.html

3 个答案:

答案 0 :(得分:2)

所以最简单的就是

var loc = location.href;
var dir = loc.substring(0,loc.lastIndexOf('/'));
function getHref(urlString) {
  if (urlString) return (urlString.toLowerCase().indexOf('http:')==0)?urlString:dir+'/'+((urlString.indexOf('/')==0)?urlString.substring(1):urlString);
}

我正在使用location objectsubstring,indexOf link textlastIndexOfternary operator - 嵌套

答案 1 :(得分:0)

使用正则表达式检查传递的url是否具有非相对组件。如果没有根据当前网址的一部分创建新的输出网址(例如通过常规exp进行修复)和相对部分。

答案 2 :(得分:0)

<script type="text/javascript">

    var loc = location.href;
    var baseurl = loc.substring(0,loc.lastIndexOf('/'));

    function getoutputurl(inputurl)
    {
        var returnurl = '';
        if (inputurl)
        {
            if(inputurl.toLowerCase().indexOf('http://')==0)
            {
                returnurl = inputurl;
            }
            else
            {
                returnurl =  baseurl+'/' ;
                if(inputurl.indexOf('/')==0)
                {
                    returnurl = returnurl + inputurl.substring(1);
                }
                else
                {
                    returnurl = returnurl + inputurl;
                }
            }
        }
        return returnurl;
    }

    alert(getoutputurl('http://google.com'));
    alert(getoutputurl('google.com'));
</script>

尝试使用此代码