正则表达式在允许空输入时验证特定输入

时间:2010-09-02 20:12:50

标签: regex

我正在尝试验证包含各种可接受输入的文本框:

  • “123456789”
  • “123456789 + 1”
  • “”

我正在使用此正则表达式来验证前两个条件:

^[0-9]{9}\+[0-9]$

但现在我无法弄清楚如何允许用户不输入任何内容,我尝试过在()?中封装表达式,或将{9}更改为{{1} },但这允许第一组中的可变数量的数字(因为它必须是9,或者没有)

非常感谢任何帮助!!

2 个答案:

答案 0 :(得分:3)

尝试

^([0-9]{9}\+[0-9])?$

?表示“前一个表达式的0或1个副本”。在这种情况下,整个括号表达式是可选的。

此外,如果您希望\+[0-9]部分是可选的,您可能希望对此做同样的事情;用括号括起来并用?

使其可选
^([0-9]{9}(\+[0-9])?)?$

答案 1 :(得分:1)

^(?:[0-9]{9}\+[0-9])?$