我想使用字符串来执行全局正则表达式,但它可能包含正则表达式字符。在使用字符串构建正则表达式之前转义字符串中所有正则表达式字符的最佳方法是什么?
基本上我可能有这样的东西;
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/