将正则表达式与p:keyFilter一起使用

编程入门 行业动态 更新时间:2024-10-25 05:19:38
本文介绍了将正则表达式与p:keyFilter一起使用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我有一个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一起使用

本文发布于:2023-10-17 13:15:08,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1501025.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:正则表达式   keyFilter

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!