Javascript 如何使用正则表达式从url中删除参数

Javascript 如何使用正则表达式从url中删除参数,javascript,regex,replace,filtering,query-string,Javascript,Regex,Replace,Filtering,Query String,我想从URL中删除某些参数 比如说: 给定的url是www.abc.com/def.php?xyz=pqr&efg=ijk,我想删除xyz=中的所有参数,然后最后的url应该是www.abc.com/def.php?efg=ijk 目前,我正在对url进行3次遍历 函数(str){ 如果(str!=null)返回str.replace(/&?'(xyz | arg2 | arg3)=[^&#]*/g'” '"'); } 功能(str){ 如果(str!=null)返回str.replace(/

我想从URL中删除某些参数

比如说:

给定的url是
www.abc.com/def.php?xyz=pqr&efg=ijk
,我想删除
xyz=
中的所有参数,然后最后的url应该是
www.abc.com/def.php?efg=ijk

目前,我正在对url进行3次遍历

函数(str){
如果(str!=null)返回str.replace(/&?'(xyz | arg2 | arg3)=[^&#]*/g'”
'"');
}
功能(str){
如果(str!=null)返回str.replace(/\\??&/,“?”);
}
功能(str){
如果(str!=null)返回str.replace(/\\?$/,“”
'"');

}
这似乎适用于我的测试用例:

()

模式:
/\?(?:xyz | arg2 | arg3)=[^&|]*(?=$| |)和(?:xyz | arg2 | arg3)=[^&&|]*(?:xyz | arg2 | arg3)=[^&&&&&

实际上,它说:

  • 如果查询字符串中只有一个键值对,则仅匹配
    (querystring的开头)
  • 如果可能,将前导的
    与键值对匹配
  • 如果不可能,请匹配尾随的
    &
  • 如果你有一个字符串打破了这个模式,让我知道,我会尝试修复它