两个不同的正则表达式合二为一

时间:2011-05-28 14:56:34

标签: javascript regex

我想把这个正则表达式放到一个正则表达式中,但现在不用如何:

/^([0-9]{2,4})\-([0-9]{6,7})$/
/^\*([0-9]{4})$/

所以字符串可以得到XX(XX)-XXXXXX(X)或* XXXX

感谢。

3 个答案:

答案 0 :(得分:6)

合并两个正则表达式AB,执行:

/(A|B)/

这可能会改变一组捕获括号的顺序。另请注意,可能不需要括号,例如A|B可能适用于您的简单案例。

在支持带有命名捕获的正则表达式的其他语言中,您可以使用它们。

答案 1 :(得分:0)

你可以对它们进行OR-it:

XX(XX)-XXXXXX(X)|*XXXX

所以要么匹配......

你得到的麻烦是,当第二个匹配时你不会得到\ 1($ 1)和\ 2($ 2)设置......

答案 2 :(得分:0)

使用| (或)。

即:

/^([0-9]{2,4})\-([0-9]{6,7})|(\*([0-9]{4})$/