JSF电话号码正则表达式

时间:2013-05-30 15:01:51

标签: regex validation jsf

我正在使用JSF的primefaces,我正在进行正则表达式检查电话号码的输入,接受的值是:

909888 90877845

这是我的代码

<p:inputText validatorMessage="invalid value">
   <f:validateRegex pattern="^[+]?[0-9]+$" />
</p:inputText>

我的问题是表达式没有传递空值,因为该字段不是必需的

1 个答案:

答案 0 :(得分:4)

你真的很接近,你需要在()?中围绕整场比赛。这意味着正则表达式需要匹配整个内部1或0次。空字符串将针对0进行验证,您的+####将验证该模式匹配一​​次的时间。

^([+]?[\d]+)?$应该有效,它也会让它更容易阅读,因为\d表示任何数字,但0-9应该可以正常工作。我使用您的值和新添加的here进行了一些测试。

此外,如果有一个特定的数字可以在范围内(即如果数字的长度在6到8之间有效),您可以将[\d]+修改为[\d]{x,y}其中{{ 1}}和x是您的最小/最大长度要求。