0

如果我有以下之一:

example.com/test1
example.com/test1/
example.com/photo/test1
example.com/photo/category/test1/

(你明白了)

如何在 jquery 中将 test1 作为加载变量结束?

window.location.pathname给我整个 /photo/category/test1/ 不仅是 test1

非常感谢您的时间和帮助

4

4 回答 4

0

如果您想找到路径名的最后一部分,我想类似以下内容会起作用:

var path = window.location.pathname.split('/');
path = path.filter(function(x){return x!='';});
var last_path = path[path.length - 1]
于 2012-12-24T22:28:33.727 回答
0
var parts = "example.com/photo/category/test1/".split('/')
var url = parts[parts.length - 1] ? parts[parts.length - 1] : parts[parts.length - 2];

?:照顾最后一个/

于 2012-12-24T22:28:52.593 回答
0

这是一个将提取最后一个路径元素的函数:

function getLastSegmentOfPath(url) {
    var matches = url.match(/\/([^\/]+)\/?$/);
    if (matches) {
        return matches[1];
    }
    return null;
}

var endPath = getLastSegmentOfPath(window.location.href);

工作测试用例和演示:http: //jsfiddle.net/jfriend00/9GXSZ/

正则表达式的工作方式如下:

\/  match a forward slash
()  separately capture what is in the parens so we can extract just that part of the match
[^\/]+ match one or more chars that is not a slash
\/?$  match an optional forward slash followed the the end of the string

在正则表达式结果(这是一个数组)中:

matches[0] is everything that matches the regex
matches[1] is what is in the first parenthesized group (what we're after here)
于 2012-12-24T22:30:28.080 回答
0

您可以使用 javascriptslastIndexOfsubstr函数:

var url = window.location.pathname;
var index = url.lastIndexOf("/");
var lastbit = url.substr(index);

这个 get 是 URL,找到 last 的位置/,并返回这个位置之后的所有东西。

编辑(见评论):排除尾随斜杠(例如:category/test/),第一个斜杠使用:

var url = window.location.pathname;
var index = url.lastIndexOf("/");
var lastbit = url.substr(index);
if (lastbit == "/"){
     url = url.slice(0, - 1); 
     index = url.lastIndexOf("/");
     lastbit = url.substr(index);
}
lastbit = lastbit.substring(1);
于 2012-12-24T22:31:42.187 回答