说我有一篇文章的网址:
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很新,所以不确定如何应用这个?)
答案 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]);
答案 3 :(得分:-1)
正则表达式会这样做。但在这种情况下,您可以将其转换为数组,最终项目的条带,并重新序列化。
var a = 'http://domain.com/blog/articles/title-here/2'.split('/');
a.splice(-1, 1);
a.join('/');