Jsf 如何使用p:inputMask使区号成为可选的

Jsf 如何使用p:inputMask使区号成为可选的,jsf,primefaces,Jsf,Primefaces,我正在尝试使用showcase中的示例为电话号码实现primefaces输入掩码 <p:inputMask id="phone" value="#{identity.phone}" mask="(999) 999-9999? x9999"/> 我需要更改它以允许区号和/或分机是可选的。如果我搬家?在开始时,为了使所有内容都可选,它会像这样填充字段:123-111-1。这是不可能的。p:inputMask的掩码不是正则表达式。如果是这样的话,用户会感到非常困惑 因此,只需让用户始终在

我正在尝试使用showcase中的示例为电话号码实现primefaces输入掩码

<p:inputMask id="phone" value="#{identity.phone}" mask="(999) 999-9999? x9999"/>
我需要更改它以允许区号和/或分机是可选的。如果我搬家?在开始时,为了使所有内容都可选,它会像这样填充字段:123-111-1。

这是不可能的。p:inputMask的掩码不是正则表达式。如果是这样的话,用户会感到非常困惑

因此,只需让用户始终在p:inputMask中输入区号,或者将其转换为普通的p:inputText,并添加一个f:validateRegex验证器,以检查电话号码是否与可选区号有效,或者使用两个字段,一个用于区号,一个用于电话号码,并添加自定义验证。在最后一种情况下,OmniFaces可能值得一看

另见: