javascript:在字符串里找到第二个字符串的最后出现?

时间:2012-01-27 15:29:48

标签: javascript location

我有这个网址http://www.something.com/category

top.location.href.substr(0, top.location.href.lastIndexOf("/") );

返回http://www.something.com

但是,如果我有网址http://www.something.com/category/something,我该如何通过移除“/”的第二个最后一次出现来再次检索http://www.something.com ...

有什么想法吗?我知道有像top.location.origin这样的东西。我需要一种方法来削减最后两个“斜杠”!

2 个答案:

答案 0 :(得分:1)

由于您正在使用location对象,请使用:

location.protocol + '//' + location.host + '/';
// On this page, it shows: http://stackoverflow.com/
// Include pathname:
location.protocol + '//' + location.host + location.pathname + '/';

对于您自己的解决方案,您可以将+1添加到第二个参数:

top.location.href.substr(0, top.location.href.lastIndexOf("/")+1 );
                                                              ^^ Hi Plus One!

对更新问题的回应(参见OPs评论):

var href = top.location.href.replace(/(\/[^\/]+){2}\/?$/, '');

答案 1 :(得分:0)

为什么不向前走,而不是向后走,你知道前面只会有2个?

var url = top.location.href;
var index1 = url.indexOf('/');
var index3 = url.indexOf('/', index1 + 2);
var final = url.substr(0, index3);