使用数组中的保留字符创建正则表达式

时间:2018-04-19 16:08:57

标签: javascript arrays regex

我正在尝试使用基于标点符号数组的RegExp构造函数创建一个正则表达式:

_.each(punctuation, (character) => { const regex = new RegExp(character, 'g'); // do something with regex }); 等......

然后使用它:

?

由于+escape()是为正则表达式保留的,我需要逃避它们 - 我认为使用Invalid regular expression: /?/: Nothing to repeat或者只是添加反斜杠这是非常简单的但是我不能完成这项工作。

我收到此错误:double TotalNoRegis = values.Sum(); // This is a LIST and its = 1569 string otherFe ="600"; double totalafter; if(otherFe != string.Empty || otherFe!= "") // This part works fine { totalafter = TotalNoRegis - Convert.ToInt32(otherFe); // Here the error is thrown }

有什么建议吗?

2 个答案:

答案 0 :(得分:2)

使用双黑色标记来逃避它们,您的代码将变为:

const punctuation = ['\\?', '\\.', '\\+'];

_.each(punctuation, (character) => {
    const regex = new RegExp(character, 'g');
    // do something with regex
});

答案 1 :(得分:0)

在这种特殊情况下,您可以在阵列中使用单个字符:

new RegExp("\\" + character, 'g');