我的JavaScript文件中有这个有效的RegExp:
var reA = new RegExp(urlValueToRemove);
var reB = new RegExp('(,&)');
var reC = new RegExp('(,,)');
var reD = new RegExp('(=,)');
var reE = new RegExp('(,$)');
window.history.pushState(null, null, decodeURIComponent(window.location.search).replace(reA, '').replace(reB, '&').replace(reC, ',').replace(reD, '=').replace(reE, ''));
是否可以将其串联/简化,以使我不需要执行replace
5次?
我已经在codereview社区中问过这个问题,但是没有人可用,所以我认为我必须在那儿等几天。
示例
当我在这里有此网址时:
当我现在想从URL中删除Green
时,我可以将Green
传递给第一个正则表达式reA
并将其从URL中删除:
答案 0 :(得分:2)
您可以使用捕获组来指示应保留的内容,并用|
将这两种情况结合起来:一种情况需要保留在之前的字符(例如{ {1}}),其他紧跟单词(如=
):
&