我正在处理一个非常长的正则表达式模式来匹配,它太长了,我必须将它分成几个不同的字符串。我的问题是:如何避免 JavaScript 中的转义字符来实例化新的 RegExp 来创建可测试的模式?
在 C# 中,这非常简单:只需在字符串中添加 @
符号,编译器就会处理它。 JavaScript 完全不同,我不确定等效的语句是什么。
最佳答案
您可以使用正则表达式文字表示法,例如/\w+/
。然后,您需要调用 .source
属性来访问模式本身以进行串联,例如/\w+/.source +/\s+/.source
.
查看有关使用 RegExp
at MDN 的更多详细信息.
就个人而言,我宁愿从 string block 构建一个模式,其中 \
应该加倍(例如 var word = "\\w+"; var space = "\\s+"; var pattern = word + space;
。这样,将避免与正则表达式对象构造相关的开销。您可以选择最方便的方法。
关于javascript - 正则表达式模式太长——需要在 JavaScript 中分割而不使用转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40599192/