Javascript - 获取没有分页编号的当前页面URL

时间:2011-08-10 23:15:00

标签: javascript regex variables url

说我有一篇文章的网址:

http://domain.com/blog/articles/title-here/

它有大约5页,所以当你浏览每一页时,你得到:

http://domain.com/blog/articles/title-here/http://domain.com/blog/articles/title-here/1

http://domain.com/blog/articles/title-here/2

http://domain.com/blog/articles/title-here/3

http://domain.com/blog/articles/title-here/4

http://domain.com/blog/articles/title-here/5

我知道以下代码将获取完整的当前URL(也包括页面#):

var u = window.location.href;

但有没有办法限制它,以便页面#不是变量“u”的一部分?

也许有一个正则表达式或者我应该添加的东西......? (我对javascript很新,所以不确定如何应用这个?)

4 个答案:

答案 0 :(得分:4)

var u = window.location.href.match(/.*[/][^\d]*/)[0]

这会对你有用吗?

修改

我改变了......再次:P

答案 1 :(得分:2)

  

注意:正则表达式是约瑟夫的一个更复杂的版本,仍然受到同样的错误。当我修复它时会取消删除。

约瑟夫的答案很好,但它有一个小错误:如果您有以下网址,它会删除网址的最后一部分:

http://domain.com/blog/articles/title-here

您可以改用:

var u = window.location.href.match(/(.*)(\/\d*)/)[1]

正则表达式的工作原理:

/          # delimiter
(.*?)      # match anything and put in capture group 1
(\/        # match the forward slash
 \d*)      # match zero or more digits
/          # delimiter

答案 2 :(得分:1)

var l = window.location;
l.href.replace(l.pathname, l.pathname.split(/\/[0-9]+$/)[0]);

try it in the console at this URL

答案 3 :(得分:-1)

正则表达式会这样做。但在这种情况下,您可以将其转换为数组,最终项目的条带,并重新序列化。

var a = 'http://domain.com/blog/articles/title-here/2'.split('/');
a.splice(-1, 1);
a.join('/');