我在使用 javascript 编写从 url 中删除任何这些参数的正则表达式时遇到问题:
pricerange=-#
pricerange=#-#
pricerange=#-
这对除最后一个以外的所有人都有效。它不会删除 pricerange=40-
var postUrl = "http://www.test.com/directory/?cat=203604&pricerange=-10&pricerange=10-20&pricerange=20-30&pricerange=30-40&pricerange=40-"
postUrl = postUrl.replace(/[&\?]\bpricerange\=[0-9]*-[0-9]*\b/g, "");
结果:
http://www.test.com/directory/?cat=203604&pricerange=40-
预期结果:
http://www.test.com/directory/?cat=203604
这是 jsbin .
url 中可能还有其他我不想删除的参数。
最佳答案
去掉结尾的\b
后重试
或使用 (\b|$)
来匹配字边界或行尾
更正 online demo
如果 cat=203604
位于 pricerange
查询参数之间,您的正则表达式将无法正常工作。
例如:
http://www.test.com/directory/?pricerange=-10&cat=203604&pricerange=10-20&pricerange=20-30&pricerange=30-40&pricerange=40-
输出:(查询参数应该以?开头)
http://www.test.com/directory/&cat=203604
您可以更正它,使用 &*\bpricerange\=[0-9]*-[0-9]*&*
这里是 online demo
关于javascript - 删除 url 参数的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25313922/