我现在使用的代码很丑,因为我必须为每个特殊字符分别写“替换”。
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/
参考: