正则表达式模式太长 - 需要在没有转义字符的JavaScript中拆分

时间:2016-11-14 22:51:26

标签: javascript regex design-patterns escaping

我正在处理一个非常长的正则表达式模式来匹配,而且它很长,我将不得不将它分成几个不同的字符串。我的问题是:如何避免JavaScript中的转义字符实例化新的RegExp以创建可测试的模式?

在C#中它非常简单:只需用@符号填充字符串,编译器就可以处理它。 JavaScript完全不同,我不确定等效语句是什么。

1 个答案:

答案 0 :(得分:1)

您可以使用正则表达式文字符号,例如/\w+/。然后,您需要调用.source属性来访问模式本身以进行连接,例如: /\w+/.source + /\s+/.source

查看有关使用RegExp at MDN的详细信息。

就个人而言,我宁愿从 string 块构建一个模式,其中\应加倍(例如var word = "\\w+"; var spaces = "\\s+"; var pattern = word + spaces;。这样,与正则表达式相关的开销将避免使用对象。您可以选择最方便的方法。