Javascript-获取不带页码的当前页面URL

Javascript - get current page URL without pagination numbers

本文关键字:当前页 URL 获取 Javascript-      更新时间:2023-09-26

假设我有一篇文章的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还很陌生,所以不知道如何应用它?(

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

这对你有用吗?

编辑

我再次更改了它:p

注意:Regex是Joseph的一个更复杂的版本,仍然存在相同的错误。当我修复它时将取消删除。

Joseph的回答很好,但它有一个小错误:如果你有一个类似的URL,它会删除URL的最后一部分

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
var l = window.location;
l.href.replace(l.pathname, l.pathname.split(/'/[0-9]+$/)[0]);

在控制台中的这个URL尝试

Regex会这么做。但在这种情况下,你可以把它变成一个数组,去掉结束项,然后重新序列化。

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