用正则表达式将反斜杠前置到所选字符
Prepend backslash to selected characters with regex
我现在使用的代码很难看,因为我必须为每个特殊字符分别写"replace"。
var str = ":''>";
str.replace("'","'''").replace(">","''>");
我想在<>*前面加上反斜杠()和通过regex。
使用将字符与字符集匹配的正则表达式,您可以尝试:
str = str.replace(/([<>*()?])/g, "''$1");
演示:http://jsfiddle.net/8ar3Z/
它匹配[ ]
内部的任何字符(您指定的字符),将它们与周围的()
捕获(以便在替换的文本部分中引用为$1
),然后以''
开头。
更新:
根据先生的建议@T.J.Crowder,不需要用()
捕获,将$1
更改为$&
,写为:
str = str.replace(/[<>*()?]/g, "''$&");
演示:http://jsfiddle.net/8ar3Z/1/
参考文献:
- Regex字符集:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#special-字符集
$1
和$&
使用:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_string_as_a_parameter
相关文章:
- 不同浏览器中的空白字符正则表达式行为
- 使用正则表达式将输入格式设置为单字符逗号、单字符逗号等
- 用于匹配不带字符的单词的正则表达式
- 使用正则表达式匹配长度为六个字符的字母数字字符串
- 正则表达式搜索一个空格,后跟一个字符
- 为什么这个正则表达式不't匹配最后一个字母数字字符
- 在字符串列表中搜索任何出现的单词,如果单词的第一个字符匹配,则高亮匹配单词.Javascript正则表达式
- javascript正则表达式来识别所有特殊字符
- Javascript-正则表达式,用于在未转义字符上拆分字符串,例如|,但忽略|
- 如何使用正则表达式限制字符串的第一个字符
- 为什么以下正则表达式不删除 ## 字符
- 模仿负查找以匹配JavaScript正则表达式中没有紧跟特定字符的模式
- 匹配某个字符后所有文本的正则表达式是什么
- Javascript中的正则表达式,用于只有数字的字符串,并且不应在除数字以外的任何位置包含任何字符
- JavaScript正则表达式(带_-的字母数字字符)
- 使用正则表达式查找字符串中的不匹配字符
- 用于删除字符串中字符开头到结尾的正则表达式
- 使用 JavaScript 中的正则表达式替换大文本中两个字符之间的每个出现的字符串
- 排除组中的字符(正则表达式)
- Javascript替换:不要在连字符(正则表达式)上拆分单词