我正在处理一个非常长的正则表达式模式来匹配,而且它很长,我将不得不将它分成几个不同的字符串。我的问题是:如何避免JavaScript中的转义字符实例化新的RegExp以创建可测试的模式?
在C#中它非常简单:只需用@
符号填充字符串,编译器就可以处理它。 JavaScript完全不同,我不确定等效语句是什么。
答案 0 :(得分:1)
您可以使用正则表达式文字符号,例如/\w+/
。然后,您需要调用.source
属性来访问模式本身以进行连接,例如: /\w+/.source + /\s+/.source
。
查看有关使用RegExp
at MDN的详细信息。
就个人而言,我宁愿从 string 块构建一个模式,其中\
应加倍(例如var word = "\\w+"; var spaces = "\\s+"; var pattern = word + spaces;
。这样,与正则表达式相关的开销将避免使用对象。您可以选择最方便的方法。