gpt4 book ai didi

regex - 使用正则表达式与 p :keyFilter

转载 作者:行者123 更新时间:2023-12-01 10:09:09 32 4
gpt4 key购买 nike

我有一个 p:inputMaskp:keyFilter匹配 HH:MM如下:

<p:inputMask mask="99:99" ...>
<p:keyFilter regEx="([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]"/>
</p:inputMask>
但它不起作用,它接受来自 00:00 的所有值至 99:99 .
我该如何解决这个问题?

最佳答案

p:keyFilterf:validateRegexregExinputRegExp:keyFilterregEx属性用于过滤字符(在每个击键上),它不允许您验证表达式(在完整的输入值上)。如果要验证输入是否与正则表达式匹配,请使用 inputRegEx属性或 f:validateRegex .
因此,在您的情况下,您可以使用:

<p:inputXxx ...>
<f:validateRegex pattern="([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]"/>
</p:inputXxx>
或者:
<p:inputXxx ...>
<p:keyFilter inputRegEx="/([0-9]|0[0-9]|1[0-9]|2[0-3]):[0-5][0-9]/"/>
</p:inputXxx>
请注意 p:keyFilter需要 JavaScript 正则表达式,while、while f:validateRegex需要 Java 正则表达式。而且, p:keyFilter inputRegEx检查键向上,而 f:validateRegex在处理字段时执行。所以,在简历中:


属性(property) p:keyFilter inputRegEx="..." f:validateRegex pattern="..."

正则表达式类型
JavaScript
java

执行时间
Key up JavaScript 事件被触发
组件被处理


这适用于所有文本输入组件(如 p:inputText ),因此不仅适用于 p:inputMask您正在使用)。
也可以看看:
  • https://primefaces.github.io/primefaces/10_0_0/#/components/keyfilter
  • Convert Javascript regular expression to Java syntax

  • 在 PrimeFaces 6 之前
    请注意 p:keyFilter从 6.0 开始可用。对于旧版本,您需要 PrimeFaces 扩展 pe:keyFilter .请注意,6.0 之前的 PFE 版本与 PF 版本不一致。
    对于完全不同的东西
    你可以看看 pe:timePicker .该组件可能更适合您的需求。

    关于regex - 使用正则表达式与 p :keyFilter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39083226/

    32 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com