我正在使用 JSF 的 primefaces,我正在做一个正则表达式检查电话号码的输入,接受的值是:
909888 +90877845
这是我的代码
<p:inputText validatorMessage="invalid value">
<f:validateRegex pattern="^[+]?[0-9]+$" />
</p:inputText>
我的问题是表达式没有传递空值,因为该字段不是必需的
我正在使用 JSF 的 primefaces,我正在做一个正则表达式检查电话号码的输入,接受的值是:
909888 +90877845
这是我的代码
<p:inputText validatorMessage="invalid value">
<f:validateRegex pattern="^[+]?[0-9]+$" />
</p:inputText>
我的问题是表达式没有传递空值,因为该字段不是必需的
你真的很接近,你需要将整个比赛包围在一个()?
. 这意味着正则表达式将需要匹配整个内部 1 或 0 次。空白字符串将针对 0 进行验证,并且您+####
将在该模式匹配一次的时间进行验证。
^([+]?[\d]+)?$
应该可以工作,它也使它更容易阅读,因为它\d
意味着任何数字,但0-9
应该可以正常工作。我对你的价值观和新增内容做了一些测试。
此外,如果有特定的数字计数可以在范围内(即,如果数字长度在 6 到 8 之间有效),您可以修改[\d]+
where[\d]{x,y}
和x
是y
您的最小/最大长度要求。