如果我有以下之一:
example.com/test1
example.com/test1/
example.com/photo/test1
example.com/photo/category/test1/
(你明白了)
如何在 jquery 中将 test1 作为加载变量结束?
window.location.pathname
给我整个 /photo/category/test1/ 不仅是 test1
非常感谢您的时间和帮助
如果我有以下之一:
example.com/test1
example.com/test1/
example.com/photo/test1
example.com/photo/category/test1/
(你明白了)
如何在 jquery 中将 test1 作为加载变量结束?
window.location.pathname
给我整个 /photo/category/test1/ 不仅是 test1
非常感谢您的时间和帮助
如果您想找到路径名的最后一部分,我想类似以下内容会起作用:
var path = window.location.pathname.split('/');
path = path.filter(function(x){return x!='';});
var last_path = path[path.length - 1]
var parts = "example.com/photo/category/test1/".split('/')
var url = parts[parts.length - 1] ? parts[parts.length - 1] : parts[parts.length - 2];
(?:
照顾最后一个/
)
这是一个将提取最后一个路径元素的函数:
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)
您可以使用 javascriptslastIndexOf
和substr
函数:
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);