我有一个p:inputMask和一个p:keyFilter来匹配HH:MM,如下所示:
I have an p:inputMask with a p:keyFilter to match HH:MM as following:
<p:inputMask id="heureDebutPlanningSalleAppareil" value="#{beanFormPlanningSalleAppareil.planningSalleAppareil.heureDebut}" required="true" maxlength="4" mask="99:99" requiredMessage="Heure de début : vous devez indiquer une valeur." > <p:keyFilter regEx="([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]"/> </p:inputMask>但是它不起作用,它接受从00:00到99:99的所有值.
But it doesn't work and it accepts all values from 00:00 to 99:99.
我该如何解决?
推荐答案p:keyFilter与f:validateRegex
p:keyFilter用于过滤字符(在每个按键上),它不允许您验证表达式(在完整的输入值上).如果要验证输入是否与正则表达式匹配,请使用f:validateRegex.
p:keyFilter versus f:validateRegex
p:keyFilter is used to filter characters (on each key stroke), it does not allow you to validate an expression (on the complete inputted value). If you want to validate if your input matches a regular expression use f:validateRegex.
所以,在您的情况下:
<p:inputMask id="heureDebutPlanningSalleAppareil" value="#{beanFormPlanningSalleAppareil.planningSalleAppareil.heureDebut}" required="true" maxlength="4" mask="99:99" requiredMessage="Heure de début : vous devez indiquer une valeur."> <f:validateRegex pattern="([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]"/> </p:inputMask>您可以将其更改为不显示更改消息:
You could ajaxify it to show a message on change:
<p:inputMask id="heureDebutPlanningSalleAppareil" value="#{beanFormPlanningSalleAppareil.planningSalleAppareil.heureDebut}" required="true" maxlength="4" mask="99:99" requiredMessage="Heure de début : vous devez indiquer une valeur." validatorMessage="Your message"> <f:validateRegex pattern="^([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]$"/> <p:ajax process="@this" update="heureDebutPlanningSalleAppareilMsg"/> </p:inputMask> <p:message for="heureDebutPlanningSalleAppareil" id="heureDebutPlanningSalleAppareilMsg"/>针对完全不同的事物
您可以查看 pe:timePicker .此组件是针对您要在此处入侵"的内容而制作的.
For something completely different
You could have a look at pe:timePicker. This component is made for what you are trying to "hack" here.
更多推荐
将正则表达式与p:keyFilter一起使用
发布评论