【问题标题】:How to concatenate regular expressions in JavaScript?如何在 JavaScript 中连接正则表达式?
【发布时间】:2009-08-23 15:41:42
【问题描述】:

不是我要的:

concatenate multiple regexes into one regex

有没有办法将一个正则表达式附加到另一个 (在 JavaScript 语言中)

这样做的原因是为了简化代码维护(例如,如果包含的字符串很长或更容易由非程序员维护)。

例如,在 Python 中,我会写如下内容:

regstr1 = 'dogs|cats|mice'
regstr_container = '^animal: (cows|sheep|%s|zebra)$' % regstr1
re.compile(regstr_container)

然而,在 JavaScript 中,正则表达式不是字符串。

re = /^animal: (rami|shmulik|dudu)$/;

还是我错过了什么?

【问题讨论】:

标签: javascript regex


【解决方案1】:

您不必使用文字符号。您可以改为创建一个新的 RegExp 对象。

var myRegex = new RegExp("^animal: (rami|shmulik|dudu)$");

【讨论】:

  • +1,你可以做一个占位符:container = "...(cows|sheep|{BLAH}|zebra).."; var re = new Regexp(container.replace("{BLAH}", regstr1);
【解决方案2】:
var regstr1 = 'dogs|cats|mice',
regstr_container = '^animal: (cows|sheep|'+ regstr1 +'|zebra)$',
regex = RegExp(regstr_container);

【讨论】:

    猜你喜欢
    • 2010-09-16
    • 1970-01-01
    • 2015-05-16
    • 1970-01-01
    • 2011-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-28
    相关资源
    最近更新 更多