如果键入9或14位数,我需要通过Regex表达式进行检查。
表达式\d{9}|\d{14}
似乎行不通,出了什么问题?
答案 0 :(得分:14)
这个正则表达式应该可行。
^(\d{9}|\d{14})$
您可以发布您正在使用的代码段并告诉我们您使用的是哪种语言? 如果你正在使用正则表达式,那么你有一个字符串,我确信你的语言可以计算字符串长度。
编辑:
正如Rubens Farias在评论中指出的那样,^ ...是必需的,因为你的正则表达式会匹配任何超过9位数的数字,因为这个数字有一个长度为9位的子字符串。
无论如何,请检查您是否可以使用语言的字符串方法/功能
答案 1 :(得分:7)
您可以使用:
^(?:\d{9}|\d{14})$
说明:
^ - Start anchor
(?: - Start of non-capturing group
\d{9} - 9 digits
| - alternation
\d{14} - 14 digits
) - close of the group.
$ - End anchor
或者你可以这样做:
^\d{9}(?:\d{5})?$
匹配9
个数字后跟可选的5
数字。
答案 2 :(得分:0)
它取决于您使用的正则表达式语法的变体,是否支持length {n-m}运算符。你在用哪一个?
答案 3 :(得分:-1)
(\d{9}|\d{14}) should work
答案 4 :(得分:-3)
使用长度检查是否正则表达式不计算