是否有正则表达式量词表示“x或y重复”?

时间:2012-07-09 14:42:09

标签: regex

我想匹配一个字符串只包含7位数字或9位数的数字。

/^\d{7}$|^\d{9}$/

是否有另一种方式来写这个,类似于/\d{7,8}/的7位或8位数?

4 个答案:

答案 0 :(得分:5)

这个怎么样:

/^\d{7}(?:\d{2})?$/

<强>解释

^      # Start of string
\d{7}  # Match 7 digits
(?:    # Try to match...
 \d{2} #  2 digits
)?     # ...optionally
$      # End of string

答案 1 :(得分:5)

替代选择:

/^(\d{7}|\d{9})$/

答案 2 :(得分:3)

使用此正则表达式

^\d{7}(\d{2})?$

答案 3 :(得分:2)

匹配7位数字,然后匹配可选的两位数字。

/^\d{7}(\d{2})?/