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

时间:2012-08-03 14:39:24

标签: regex

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

我试过(不要笑)

/^([0-9]{7} | [0-9]{9})

/^([0-9]{7 | 9})

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

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

由于

6 个答案:

答案 0 :(得分:24)

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

\d[0-9]的现代正则表达式简写,使用(?:可以阻止您不希望或不需要发生a group capture

答案 1 :(得分:3)

你的第一种方法有效。只需省略空白,添加$以匹配字符串结尾和尾部斜杠分隔符。您还可以使用快捷方式[0-9]替换\d

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

答案 2 :(得分:2)

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

[0-9]{7}([0-9]{2})?

答案 3 :(得分:2)

使用此正则表达式^\d{7}(\d{2})?$

答案 4 :(得分:0)

在您正在使用的编程语言中,这可能更容易完成,但也可以在正则表达式中实现。请看一下这个链接:Regular expression to limit number of characters to 10

答案 5 :(得分:0)

如果您只删除空格(并且选项不包括括号),那么您的第一个将起作用。