我现在使用的代码很丑,因为我必须为每个特殊字符分别写“替换”。
var str = ":''>";
str.replace("'","\\'").replace(">","\\>");
我想在< > * ( ) 和 ? 通过正则表达式。
我现在使用的代码很丑,因为我必须为每个特殊字符分别写“替换”。
var str = ":''>";
str.replace("'","\\'").replace(">","\\>");
我想在< > * ( ) 和 ? 通过正则表达式。
使用将字符与字符集匹配的正则表达式,您可以尝试:
str = str.replace(/([<>*()?])/g, "\\$1");
演示:http: //jsfiddle.net/8ar3Z/
它匹配[ ]
(您指定的那些)内的任何字符,用周围捕获它们()
(以便可以$1
在替换的文本部分中引用它),然后在前面加上\\
.
更新:
作为@TJCrowder 先生的建议,没有必要用 捕获()
,更改$1
为$&
,写为:
str = str.replace(/[<>*()?]/g, "\\$&");
演示:http: //jsfiddle.net/8ar3Z/1/
参考: