javascript - 删除 url 参数的正则表达式

标签 javascript regex

我在使用 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后重试

online demo

或使用 (\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/

相关文章:

javascript - 编号 : null when creating a new item in sequelize

javascript - 正则表达式匹配并递增文件名 (n)

javascript - 从输入字符串中获取包含字符及其 ANSI 颜色的数组

Mysql Regexp 搜索包含特定单词的记录

javascript - 如何获取当前值和最大值(进度条)的差值?

javascript - DataType.MultilineText 字段将破坏我的模式弹出部分 View 的整个验证

javascript - 在 JavaScript 中重载算术运算符?

windows - 为什么 findstr 不能正确处理大小写(在某些情况下)?

java - JAVA 中带有模式和匹配器的正则表达式

javascript - 如何恢复显示:block when switching @media stylesheets?