javascript - 在 RegExp 构建之前清理正则表达式字符串?

标签 javascript regex sanitization

我想使用字符串来执行全局正则表达式,但它可能包含正则表达式字符。在使用字符串构建正则表达式之前转义字符串中所有正则表达式字符的最佳方法是什么?

基本上我可能有这样的东西;

var test = 'test.';
var regex = new RegExp(test, 'ig');

我需要“测试”。成为'测试'。所以它不会以意想不到的方式运行。

最佳答案

new RegExp(test.replace(/[#-.]|[[-^]|[?|{}]/g, '\\$&'));

或者简单地说:

new RegExp(test.replace(/[#-}]/g, '\\$&'));

后者最终会比它应该逃脱的更多,但它不会伤害任何东西。

关于javascript - 在 RegExp 构建之前清理正则表达式字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6300183/

相关文章:

javascript - 阻止用户输入 javascript 而不是在 href 中使用 url

sql - 输入清理和参数化查询是否相互排斥?

Javascript - 用于验证文档文件的正则表达式 - PDF、TXT、DOC

javascript - jQuery 每个函数在每次点击时显示不同的弹出窗口

Javascript - 正则表达式 - 字边界 (\b) 问题

正则表达式查找包含序列但不包含不同序列的行

c++ - 无法弄清楚为什么正则表达式不起作用

javascript - jQuery - 捕获输入字段验证状态的变化

javascript - 检查所有单选按钮(JSF 组件)+ jQuery

php - 未定义索引 - 安全风险与性能与代码膨胀