我想从URL中删除某些参数。
比如说:
给定的网址为www.abc.com/def.php?xyz=pqr&efg=ijk
,我想删除xyz=<value>
的所有参数,然后最终的网址应该看起来像www.abc.com/def.php?efg=ijk
。
目前,我正在对网址进行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(/\\?$/, '"'
'"');
}
&#13;
是否可以将所有3个正则表达式合并为一个正则表达式?
答案 0 :(得分:1)
这似乎适用于我的测试用例:
模式:/\?(?:xyz|arg2|arg3)=[^&#]*(?=$|#)|&(?:xyz|arg2|arg3)=[^&#]*|(?:xyz|arg2|arg3)=[^&#]*&/
实际上,它说:
?
(查询字符串的开头)。&
与键值对匹配。&
如果你有一个打破这种模式的字符串,请告诉我,我会尝试修复它。