4

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

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

有没有另一种写法,类似于/\d{7,8}/7 位或 8 位数字?

4

4 回答 4

6

这个怎么样:

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

解释:

^      # Start of string
\d{7}  # Match 7 digits
(?:    # Try to match...
 \d{2} #  2 digits
)?     # ...optionally
$      # End of string
于 2012-07-09T14:44:06.377 回答
5

替代方案:

/^(\d{7}|\d{9})$/
于 2012-07-09T14:47:14.397 回答
3

使用这个正则表达式

^\d{7}(\d{2})?$
于 2012-07-09T14:45:06.030 回答
2

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

/^\d{7}(\d{2})?/
于 2012-07-09T14:47:07.247 回答