正则表达式模式太长——需要在 JavaScript 中拆分而不使用转义字符

问题描述 投票:0回答:1

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

在 C# 中,这非常简单:只需在字符串中添加

@
符号即可,编译器会处理它。 JavaScript 完全不同,我不确定等效的语句是什么。

javascript regex escaping
1个回答
1
投票

您可以使用正则表达式文字表示法,例如

/\w+/
。然后,您需要调用
.source
属性来访问模式本身以进行串联,例如
/\w+/.source + /\s+/.source

请参阅 MDN 上有关使用

RegExp 的更多详细信息。

就个人而言,我宁愿从 string 块构建一个模式,其中

\
应加倍(例如
var word = "\\w+"; var spaces = "\\s+"; var pattern = word + spaces;
)。这样,将避免与正则表达式对象构造相关的开销。由您选择最方便的方法。

© www.soinside.com 2019 - 2024. All rights reserved.