我有这个网址,我想匹配 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
我目前的正则表达式与上述不匹配,因为没有“&” 此外,在这种情况下,我还需要一种方法来删除问号 - 所以正则表达式也应该匹配它。
我该怎么做?
答案 0 :(得分:1)
我建议使用背后的角色,如下:
.replace(/([?&])test(?:(?=&)|=[^&]*)/,"$1")
这适用于字符串的结尾,并且允许它不会影响?anothertest=derp
编辑:改了一下,添加了对空参数或布尔参数的支持。