http://localhost:9000/detail.html?p=111&cat=222
我想通过一个正则,匹配到这个网址中的111,注意,只能是111
(注:p这个字段只能含有数字)
我写的正则是这样的
p=\d+(?=[&])
这样匹配到的结果是
p=111
我想把p=
给去掉,也就是我不希望匹配到这个东西,怎么办?
http://localhost:9000/detail.html?p=111&cat=222
我想通过一个正则,匹配到这个网址中的111,注意,只能是111
(注:p这个字段只能含有数字)
我写的正则是这样的
p=\d+(?=[&])
这样匹配到的结果是
p=111
我想把p=
给去掉,也就是我不希望匹配到这个东西,怎么办?
10 回答11.6k 阅读
2 回答3.1k 阅读✓ 已解决
3 回答2.7k 阅读✓ 已解决
2 回答2.1k 阅读✓ 已解决
4 回答2.1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
楼上的正则表达式只对你这一个例子适用,更具体的讲,它只在路由参数只有两个并且 p 是第一个的情况下适用。
js 里的正则是不支持判断“前面是
p=
”这种条件的,所以要让结果完全只有111
没有p=
出现是不可能的。但是有一种替代方案,只需要将你原来的正则稍微修改一点就可以实现:
这个数组的第二项就是你想要的东西。
这个正则表达式中,
(\d+)
的括号会将括住的部分放进返回结果里。另外注意我将你的
(?=[&])
补充成了(?=[&$])
,这是要考虑 p 是最后一个参数的情况希望对你有帮助