2

我现在使用的代码很丑,因为我必须为每个特殊字符分别写“替换”。

var str = ":''>";
str.replace("'","\\'").replace(">","\\>");

我想在< > * ( ) 和 ? 通过正则表达式。

4

1 回答 1

8

使用将字符与字符集匹配的正则表达式,您可以尝试:

str = str.replace(/([<>*()?])/g, "\\$1");

演示:http: //jsfiddle.net/8ar3Z/

它匹配[ ](您指定的那些)内的任何字符,用周围捕获它们()(以便可以$1在替换的文本部分中引用它),然后在前面加上\\.


更新:

作为@TJCrowder 先生的建议,没有必要用 捕获(),更改$1$&,写为:

str = str.replace(/[<>*()?]/g, "\\$&");

演示:http: //jsfiddle.net/8ar3Z/1/


参考:

于 2013-06-21T15:21:02.700 回答