获取URI的最后一部分

时间:2013-04-26 13:32:30

标签: javascript url

我需要使用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];

4 个答案:

答案 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]

这实际上就是说从路径末尾取出所有不是斜杠的字符,并返回该序列。