使用正则表达式删除网址参数
Remove url param with regex
给定一个网址,我正在尝试删除一个特定的网址参数。
例如,如果我有:
http://example.com?foo=bar&baz=boo
我想摆脱foo=bar
,只剩下:
http://example.com?baz=boo
或者,如果我想删除baz=boo
我将只剩下:
http://example.com?foo=bar
我正在尝试使用正则表达式以及字符串的replace
函数。
这是我所拥有的:
// s is "foo"
new RegExp("([&?]+)" + s + "=.*&")
它不适用于以下情况:
http://example.com?foo=bar
因为它与&
不匹配,但我无法弄清楚如何制作正则表达式来处理这两种情况。
jsBin
工作小提琴
我认为您正在寻找什么,使用组来处理&
和没有它的两种情况:
"([&?]+)" + s + "=(.*&|.*$)?"
编辑:更新小提琴
如果要在第一次出现&
时停止,可以添加?
(如果存在(:
"([&?]+)" + s + "=(.*?&|.*$)?"
_____________________^
希望这有帮助。
([&?]+)foo=.*?(?:&|$)
应该可以工作。
我更改了什么
-
.*?
修复了贪婪问题。 -
(?:&|$)
是一个非捕获组。它要么匹配&
,要么匹配行端(带$
(。
str = str.replace(/(?:'?|&)(foo[^=]*=[^&]+)(?:&|$)/,'');
演示
相关文章:
- 删除处于抽象状态的参数angular
- JS:删除带有接受参数的处理程序的事件侦听器
- 谷歌应用脚本中的 UrlFetchApp.fetch 删除 url 参数
- getJSON()-如何删除数据参数前面的AND符号
- 可以't获取此函数以删除基于javaScript中后续参数的特定元素
- 使用Javascript从url中删除参数
- 使用正则表达式删除网址参数
- 通过删除一个参数及其值来清理 URL
- 从网址中删除最后一个参数
- 删除元素并将其添加到 javascript 中的函数参数列表中
- 从 JavaScript 中的参数中删除参数
- 删除导致页面刷新出现问题的查询参数
- 删除错误.MongooDB + Express.传入的参数必须是 12 个字节的单个字符串或 24 个十六进制字符的字符
- 从作为参数传入的数组中删除对象不会修改原始数组 (Angular)
- 使用具有多个参数的猫鼬删除/删除
- 使用 jQuery 和 push State 从 URL 中删除 URL 参数
- 如果两个参数都匹配,则从对象中删除重复项
- 删除特定参数
- 按日期参数删除对象
- 将包含对象的 3D 数组展平到 2D 中,通过其参数删除重复的对象