猿问

根据位置替换 url 中的 GET 参数(正则表达式)

我想删除一个 url 的 GET 参数,

网址采用以下格式:

https://url.com?remove_parameter={VALUE}

https://url.com?keep_parameter={VALUE}&remove_parameter={VALUE}

我在找什么:

https://url.com

https://url.com?keep_parameter={VALUE}

我寻找了正则表达式,但找不到正确的答案。

有没有办法在 javascript 的替换函数中使用正则表达式来格式化这些 url?


心有法竹
浏览 295回答 2
2回答

DIEA

您可以在不使用正则表达式的情况下安全地执行此操作。var url = new URL("https://url.com?keep_parameter={VALUE}&remove_parameter={VALUE}");console.log(url.origin);console.log("Before removal:");url.searchParams.forEach(function(value, key){ console.log(key, value); });url.searchParams.delete('remove_parameter');console.log("After removal:");url.searchParams.forEach(function(value, key){ console.log(key, value); });console.log("Rebuild:");console.log(url.toString());

缥缈止盈

也许,[&?]remove_parameter={[^}]*}用空字符串替换在这里可以正常工作。const regex = /[&?]remove_parameter={[^}]*}/gm;const str = `https://url.com?remove_parameter={VALUE}https://url.com?keep_parameter={VALUE}&remove_parameter={VALUE}http://url.com?remove_parameter={VALUE}https://www.url.com?keep_parameter={VALUE}&remove_parameter={VALUE}`;const subst = ``;const result = str.replace(regex, subst);console.log(result);正则表达式电路jex.im可视化正则表达式:
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答