在生成RegExp之前对正则表达式字符串进行Sanitize处理
Sanitize string of regex characters before RegExp build?
我想用一个字符串来执行全局正则表达式,但其中可能有正则表达式字符。在用它构建正则表达式之前,最好的方法是什么来转义字符串中的所有正则表达式字符?
基本上我可能会有这样的东西;
var test = 'test.';
var regex = new RegExp(test, 'ig');
我需要"测试"成为"测试''。"所以它不会以意想不到的方式表现。
new RegExp(test.replace(/[#-.]|[[-^]|[?|{}]/g, '''$&'));
或者简单地说:
new RegExp(test.replace(/[#-}]/g, '''$&'));
后者最终会逃脱更多,但不会造成任何伤害。
这将用它们的转义版本替换所有特殊的RegExp字符:
test = test.replace(/['''.'+'*'?'^'$'[']'(')'{'}'/'''#':'!'='|]/ig, "''$&");
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- jQuery中是否内置了任何字符串格式化函数
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- ng打开空字符串
- 正则表达式在字符串中找到base64
- 如何将字符串值从php页面发送到java脚本页面
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 对id以某个字符串开头的元素进行计数
- Javascript逻辑运算符和字符串/数字
- 反向字符串比较
- 如何有效地将游戏数据存储在URL查询字符串中
- 可变大小的JavaScript字符串如何成为基元类型
- 将DOM节点值与字符串Javascript进行比较
- 如何在 Javascript 中将变量的值从字符串转换为整数
- 本地存储中的字符串到字节数组转换
- JavaScript按钮/输入/函数,字符串反转
- 从查询字符串参数推断出正确的数据类型
- AngularJS字符串变量到使用sanitize的HTML元素
- 在生成RegExp之前对正则表达式字符串进行Sanitize处理