我想从 URL 中删除某些参数。
比如说:
给定的网址是www.abc.com/def.php?xyz=pqr&efg=ijk
我想删除所有参数 xyz=<value>
, 那么最终的 url 应该看起来像 www.abc.com/def.php?efg=ijk
.
目前,我正在对 url 进行 3 次遍历。
function(str) {
if (str != null) return str.replace(/&?'(xyz|arg2|arg3)'=[^&#]*/g, '"'
'"');
}
function(str) {
if (str != null) return str.replace(/\\??&/, '"' ? '"');
}
function(str) {
if (str != null) return str.replace(/\\?$/, '"'
'"');
}
能否将所有 3 个正则表达式合并为一个正则表达式?
最佳答案
这似乎适用于我的测试用例:
模式:/\?(?:xyz|arg2|arg3)=[^]*(?=$|#)|&(?:xyz|arg2|arg3)=[^ ]*|(?:xyz|arg2|arg3)=[^]*&/
实际上,它说:
- 如果查询字符串中只有一对键值对,则只匹配
?
(查询字符串的开头)。 - 如果可能,将前导
&
与键值对匹配。 - 如果不可能,匹配尾随的
&
如果您有打破此模式的字符串,请告诉我,我会尽力修复它。
关于javascript - 如何使用正则表达式从 url 中删除参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48439394/