validate regulares primeface phone only number inputmask fecha expresiones regex jsf primefaces

regex - regulares - uppercase primefaces



Uso de regex con inputMask en primefaces (1)

Tengo un inputText con un keyfilter para que coincida con HH: MM de la siguiente manera:

<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." > <pe:keyFilter regEx="([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]"/> </p:inputMask>

Pero no funciona y acepta todos los valores de 00:00 a 99:99.

Como puedo resolver esto ?


p:keyFilter versus f:validateRegex

p:keyFilter se usa para filtrar caracteres (en cada trazo de tecla), no le permite validar una expresión (en el valor ingresado completo). Si desea validar si su entrada coincide con una expresión regular, use f:validateRegex .

Entonces, en tu caso:

<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>

Podría ajaxificarlo para mostrar un mensaje sobre el cambio:

<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"/>

Por algo completamente diferente

Puedes echar un vistazo a pe:timePicker . Este componente está hecho para lo que estás tratando de "piratear" aquí.