获取没有最后一段的URL路径

时间:2012-12-12 17:40:48

标签: javascript jquery url

如何获取当前网站的网址路径,但没有最后一个网段:

http://www.domain.com/first/second/last

我只需要http://www.domain.com/first/second ...使用jQuery(或只有JavaScript)

4 个答案:

答案 0 :(得分:13)

根据OP的要求 - 通过评论

进行更改
var url = document.URL, 
    shortUrl=url.substring(0,url.lastIndexOf("/"));

这假设URL不太可能改变

我使用document.URL因为这是推荐的

答案 1 :(得分:4)

http://jsfiddle.net/KZsEW

对所有浏览器尝试以下操作:

var url = "http://www.domain.com/first/second/last";  // or var url = document.URL;
var subUrl = url.substring(0,url.lastIndexOf("/"))

alert(subUrl);
​

lastIndexOf()方法返回字符串中最后一次出现指定值的位置。

  

注意:从结尾到开头搜索字符串,但是   从位置0开始返回索引。

     

如果要搜索的值永远不会发生,则此方法返回-1。

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/String/lastIndexOf

答案 2 :(得分:0)

我不确定这是最优雅的解决方案,但是您只希望子字符串到最后一个斜杠,或者如果最后一个字符是斜线则要求倒数第二个。在这里,我首先获取协议之后出现的URL部分(http://或https://),以便例如http://stackoverflow.com返回http://stackoverflow.com

    var url = document.URL.split('://');
    var last_slash;
    var result;
    if (url[1].charAt(url[1].length - 1) === '/') {
      url[1] = url[1].substring(0, url[1].length - 1);
    }
    last_slash = url[1].lastIndexOf('/');
    result = url[0] + '://' + ((last_slash !== -1) ? url[1].substring(0, last_slash) : url[1]);

编辑:jsfiddle http://jsfiddle.net/CV6d4/

答案 3 :(得分:0)

试试这个:

var url = 'http://www.domain.com/first/second/last';
for(var i=url.length-1; i>=0;i--){
    if(url[i]!='/'){
        url= url.substr(0,i);
    }
    else{
        alert(url);
        break;
    }
}