正则表达式恰好匹配7或9位数

Oli*_*ton 16 regex

我的注册技能几乎为零,我试图匹配一个字段,正好有7或9个数字(不在7或9之间,因此没有8个数字无效).

我试过了(别笑)

/^([0-9]{7} | [0-9]{9})
Run Code Online (Sandbox Code Playgroud)

/^([0-9]{7 | 9})
Run Code Online (Sandbox Code Playgroud)

如果有人可以提供帮助并解释非常感谢的答案.

我假设(可能不正确)与我正在使用的(编程)语言无关

谢谢

cha*_*aos 24

/^\d{7}(?:\d{2})?$/
Run Code Online (Sandbox Code Playgroud)

\d是现代正则表达式的简写[0-9],使用(?:可以防止您不希望或不需要发生的群组捕获.


Ber*_*rgi 6

您的第一种方法有效。只需留空即可,添加a $以匹配字符串末尾和斜杠定界符。您也可以替换[0-9]为快捷方式\d

/^(\d{7}|\d{9})$/
Run Code Online (Sandbox Code Playgroud)


Fre*_*Foo 5

七位或九位数字是七位数字,可选择后跟另外两位数字:

[0-9]{7}([0-9]{2})?
Run Code Online (Sandbox Code Playgroud)