0

我正在寻找一个正则表达式来匹配 URL 的某些部分以相应地重定向我的页面。

我没有运气用谷歌搜索它。

前任:

http://www.somesite.com/cat1/cat2/

在此,我希望匹配域名后的任何单词或字符,因此它将是 /cat1/cat2/

http://www.somesite.com/cat1/cat2/cat3/

在此,我希望匹配域名后的任何单词或字符,因此它将是 /cat1/cat2/cat3/


寻找 2 diff 正则表达式来匹配这种 url。第一个仅匹配 2 个类别的正则表达式和第二个仅匹配 3 个类别的正则表达式。

提前谢谢大家。

4

4 回答 4

2

这将适用于第一种情况,所需的部分位于第一个捕获组中:

^http://[^/]+(/(?:[^/]*/){2})$

{2}将零件更改{3}为第二种情况。

于 2012-10-04T10:00:19.637 回答
1

听起来很简单。

第一个正则表达式就像:http://.+/([^/]+)/([^/]+)/

我会让你猜猜第二个正则表达式是什么。

于 2012-10-04T09:58:10.980 回答
1

据我所知,正则表达式不支持反向匹配。这意味着,您不能编写与正则表达式中不匹配的正则表达式(如果我错了,请有人纠正我)。话虽这么说,你可以使用这个:

^http:\/\/[^\/]+\/(.*)

使用分组,您可以匹配 URL 域之后的任何内容。因此,在这种情况下,您要查找的内容可以通过 $1 (由正则表达式末尾的括号表示的组)获取。另一个重要的事情是正则表达式开头的 ^。这样您就不会捕获作为 URL 的查询参数传递的 URL 字符串。

于 2012-10-04T10:15:10.760 回答
0

您可以从中获取路径名windwo.location.pathname

var path = window.location.pathname

得到这个后,path你可以使用split('/');

于 2012-10-04T09:55:59.307 回答