我正在尝试使用基于标点符号数组的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
}
有什么建议吗?
答案 0 :(得分:2)
使用双黑色标记来逃避它们,您的代码将变为:
const punctuation = ['\\?', '\\.', '\\+'];
_.each(punctuation, (character) => {
const regex = new RegExp(character, 'g');
// do something with regex
});
答案 1 :(得分:0)
在这种特殊情况下,您可以在阵列中使用单个字符:
new RegExp("\\" + character, 'g');