Javascript 使用数组中的保留字符创建正则表达式
我正在尝试使用基于标点字符数组的RegExp构造函数创建一个regex,如下所示:Javascript 使用数组中的保留字符创建正则表达式,javascript,arrays,regex,Javascript,Arrays,Regex,我正在尝试使用基于标点字符数组的RegExp构造函数创建一个regex,如下所示: const标点符号=['?',','+']等 然后按如下方式使用: _.each(punctuation, (character) => { const regex = new RegExp(character, 'g'); // do something with regex }); 由于?和+是为regex保留的,我需要对它们进行转义-我假设使用转义()或简单地添加反斜杠会非常直接,但
const标点符号=['?',','+']代码>等
然后按如下方式使用:
_.each(punctuation, (character) => {
const regex = new RegExp(character, 'g');
// do something with regex
});
由于?
和+
是为regex保留的,我需要对它们进行转义-我假设使用转义()
或简单地添加反斜杠会非常直接,但我根本无法实现这一点
我收到以下错误:无效的正则表达式:/?/:无需重复
有什么建议吗?使用双黑斜杠将其转义,您的代码将变成:
const punctuation = ['\\?', '\\.', '\\+'];
_.each(punctuation, (character) => {
const regex = new RegExp(character, 'g');
// do something with regex
});
使用双黑斜杠将其转义,您的代码将变为:
const punctuation = ['\\?', '\\.', '\\+'];
_.each(punctuation, (character) => {
const regex = new RegExp(character, 'g');
// do something with regex
});
在数组中只有一个字符的特定情况下,可以执行以下操作:
new RegExp("\\" + character, 'g');
在数组中只有一个字符的特定情况下,可以执行以下操作:
new RegExp("\\" + character, 'g');
转义字符串“\\`.thansk@destoryer”中的反斜杠,但这也会引发语法错误:无效的正则表达式:/\/:\在模式的末尾
new RegExp(“\\?”)。test(“?”
应该可以工作。在这种情况下,new RegExp(“\\”+字符,'g')代码>@revo谢谢-正是我需要的,现在看起来很简单#longdayEscape字符串“%\\`.thansk@destoryer中的反斜杠,但这也会引发语法错误:无效的正则表达式:/\/:\在模式的末尾
new RegExp(“\\?”)。test(“?”
应该可以工作。在这种情况下,new RegExp(“\\”+字符,'g')代码>@revo谢谢-正是我需要的,现在看起来很简单#longdaythank you-很好的建议,但并不完全是我所需要的,因为我想将标点数组用于各种用途,而不仅仅是正则表达式。上面revo的回答对我很有帮助。谢谢-很好的建议,但不完全是我需要的,因为我想将标点数组用于各种用途,而不仅仅是正则表达式。上面瑞沃的回答帮助了我。