我的正则表达式不是那么热,所以为这个非常新的问题道歉。
我正在使用 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"/ 一样指定要转义的一整块内容?
据我所知,正则表达式中没有全局/块转义。如果您想避免在这种情况下转义,您也可以执行以下操作:
myString.replace(/([.]{2}[/]){2}libs[/]bootstrap[/]less/g, "bootstrap");
. 和 / 在字符集中指定时不需要转义 []
为了更容易在正则表达式中引用什么,您可以使用以下代码:
RegExp.quote = function(str) {
return str.replace(/([.?*+^$[\]\\(){}|-])/g, "\\$1");
};
然后你像这样应用它:
var expr = RegExp.quote('../../libs/bootstrap/less');
mystring.replace(new RegExp(expr, 'g'), 'bootstrap');