1

我有这个 URL,我想匹配test=dahsdhajd部分,以便使用 replace() 删除它;

http://www.mysite.com?test=dhasjdhja&src=list

我可以使用这个正则表达式:

var regex = /test=.+&/;
var url = window.location.href;
var newUrl = url.replace(regex, "");

这会很好,给我:

http://www.mysite.com?test=dhasjdhja

问题是,当我后面没有另一个查询字符串时,我需要使正则表达式与test = dshajdhajd匹配:

http://www.mysite.com?test=dhasjdhja

我当前的正则表达式与上述不匹配,因为没有“&” 此外,在这种情况下,我还需要一种删除问号的方法 - 所以正则表达式也应该匹配它。

我该怎么做?

4

1 回答 1

1

我建议使用它背后的角色,如下所示:

.replace(/([?&])test(?:(?=&)|=[^&]*)/,"$1")

这适用于字符串的结尾,并允许它不会影响类似?anothertest=derp

编辑:对其进行了一些更改以添加对空或布尔参数的支持。

于 2013-06-28T15:31:40.157 回答