Javascript 正则表达式中的批量逃逸

Javascript 正则表达式中的批量逃逸,javascript,regex,Javascript,Regex,我的正则表达式不是很热,所以很抱歉这个很新的问题 我正在使用String.replace将字符串“../../libs/bootstrap/less”更改为“bootstrap”。当前我的正则表达式如下所示: myString.replace(\.\.\/\.\.\/libs\/bootstrap\/less/g, 'bootstrap); 我想一定有更好的办法来摆脱这条路。是否可以指定一整块要转义的内容,如/\“../../foo/bar/baz”/?为了更容易在正则表达式中引用什么,可以使

我的正则表达式不是很热,所以很抱歉这个很新的问题

我正在使用String.replace将字符串“../../libs/bootstrap/less”更改为“bootstrap”。当前我的正则表达式如下所示:

myString.replace(\.\.\/\.\.\/libs\/bootstrap\/less/g, 'bootstrap);
我想一定有更好的办法来摆脱这条路。是否可以指定一整块要转义的内容,如/\“../../foo/bar/baz”/?

为了更容易在正则表达式中引用什么,可以使用以下代码:

RegExp.quote = function(str) {
     return str.replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1");
};
然后像这样应用它:

var expr = RegExp.quote('../../libs/bootstrap/less');
mystring.replace(new RegExp(expr, 'g'), 'bootstrap');

据我所知,regex中没有全局/块转义。如果要避免在本例中转义,您也可以执行以下操作:

myString.replace(/([.]{2}[/]){2}libs[/]bootstrap[/]less/g, "bootstrap");

。和/在字符集[]中指定时不需要转义。

为什么它必须是正则表达式?@Jack这样它就可以替换所有匹配项。可能的重复不需要多余的函数,OP需要的已经在语言本身中了。@SomeKittens OP正在寻求更好的方法来转义路径,这个答案更一般。@mattwipple你知道我们一直在谈论JavaScript,对吗?没有
模式
类。@Jack哎哟,对不起,应该仔细看一下你的代码。我最后说了这个:([.]{2}\/){2}libs\/bootstrap\/谢谢!