我需要使用Javascript获取当前URI的最后一部分,例如
www.example.com/apple/beer/cucumber
它应该返回
黄瓜
或
www.example.com/apple/beer /
它应该返回
啤酒
我想出了以下代码:
var url = window.location.pathname;
var urlsplit = url.split("/");
var action = urlsplit[urlsplit.length-1];
这可以进一步改善吗? 如果没有,也许这篇文章可以帮助其他人试图找到同样问题的解决方案。
解决方案
感谢所有人,这似乎是最短的(希望是最好的)解决方案:
var action = window.location.pathname.split("/").slice(-1)[0];
答案 0 :(得分:13)
不幸的是,到目前为止,所有答案都不适用于跟/
一样的www.example.com/apple/beer/
的网址,例如window.location.pathname.split('/').filter(function(el){ return !!el; }).pop();
的例子。
这是一个在这种情况下也适用的解决方案:
{{1}}
jsFiddle Testcase: http://jsfiddle.net/EMK6t/
答案 1 :(得分:10)
这有点短,但你的解决方案肯定是正确的。
var url = window.location.pathname;
var urlsplit = url.split("/").slice(-1)[0];
或者,正如PSR所说,你可以使用substr:
var url = window.location.pathname;
url.substr(url.lastIndexOf('/') + 1);
答案 2 :(得分:1)
您可以使用
url.substr(url.lastIndexOf('/') + 1)
答案 3 :(得分:-1)
location.pathname.match(/([^\/]+)$/)[1]
这实际上就是说从路径末尾取出所有不是斜杠的字符,并返回该序列。