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

标签 javascript regex design-patterns escaping

我正在处理一个非常长的正则表达式模式来匹配,它太长了,我必须将它分成几个不同的字符串。我的问题是:如何避免 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/

相关文章:

javascript - 为什么 vBulletin 在其 js feed 中返回一个函数?

javascript - 将 GridView 控件 ID 传递给 JavaScript

javascript websockets - 控制初始连接/onOpen 何时绑定(bind)

java - 用多态替换 switch-case

javascript - 如果选中单选按钮,如何获取单选按钮的文本?

php - 简单正则表达式不在多维 JSON 字符串上

regex - 带组的 Perl 正则表达式替换

javascript - 正则表达式/_/g 是什么意思?

model-view-controller - MVC 模式相对于老式的 3 层模式的主要优势是什么

java - 使用 "Adapter"模式