1

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

909888 +90877845

这是我的代码

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

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

4

1 回答 1

4

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

^([+]?[\d]+)?$应该可以工作,它也使它更容易阅读,因为它\d意味着任何数字,但0-9应该可以正常工作。我对你的价值观和新增内容做了一些测试

此外,如果有特定的数字计数可以在范围内(即,如果数字长度在 6 到 8 之间有效),您可以修改[\d]+where[\d]{x,y}xy您的最小/最大长度要求。

于 2013-05-30T15:07:02.113 回答