我有一个p:inputMask和一个p:keyFilter来匹配HH:mm模式中的时间,如下所示:
p:inputMask
p: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的所有值。我该如何解决这个问题?
00:00
99:99
wpx232ag1#
f:validateRegex
regEx
inputRegEx
带有 regEx 属性 的 p:keyFilter 用于 过滤 字符 ( 在 每次 击 键 时 ) , 它 不 允许 您 验证 表达式 ( 在 完整 的 输入 值 上 ) 。 如果 要 验证 输入 是否 与 正则 表达式 匹配 , 请 使用 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:keyFilter 需要 JavaScript 正则 表达式 , 而 , 而 f:validateRegex 需要 Java 正则 表达式 。 并且 , p:keyFilter inputRegEx 在 按键 时 被 选中 , 而 f:validateRegex 在 处理 字段 时 被 执行 。 正确 的 p:keyFilter 使用 方法 是 :
p:keyFilter inputRegEx
<p:inputXxx ...> <p:keyFilter inputRegEx="/[0-9:]/"/> </p:inputXxx>
格式但 这 仍 将 允许 无效 输入 。所以 , 在 简历 中 :| 属性|p:keyFilter inputRegEx="..."| f:validateRegex pattern="..."|| - -| - -| - -|| 正则 表达式 类型|JavaScript 语言| java || 执行 时间|触发 了 键 抬起 JavaScript 事件|已 处理 组件|这 适用 于 所有 文本 输入 组件 ( 如 p:inputText ) , 因此 不仅 适用 于 您 正在 使用 的 p:inputMask ) 。另 请 参阅 :
p:keyFilter inputRegEx="..."
f:validateRegex pattern="..."
p:inputText
第 六 次 启动 前请 注意 , p:keyFilter 自 6.0 起 可用 。 对于 较 早 的 版本 , 您 需要 PrimeFaces Extensions pe:keyFilter 。 请 注意 , 6.0 之前 的 PFE 版本 与 PF 版本 不 一致 。为了 完全 不同 的 东西您 可以 简单 地 使用 p:datePicker , 它 现在 只能 用于 输入 时间 ( 小时 和 分钟 ) :
pe:keyFilter
p:datePicker
<p:datePicker pattern="HH:mm" .../>
格式或者 你 可以 看看 pe:timePicker 。
pe:timePicker
1条答案
按热度按时间wpx232ag1#
# #
p:keyFilter
与f:validateRegex
的 对比 -regEx
与inputRegEx
的 对比带有
regEx
属性 的p:keyFilter
用于 过滤 字符 ( 在 每次 击 键 时 ) , 它 不 允许 您 验证 表达式 ( 在 完整 的 输入 值 上 ) 。 如果 要 验证 输入 是否 与 正则 表达式 匹配 , 请 使用inputRegEx
属性 或f:validateRegex
。因此 , 在 您 的 情况 下 , 您 可以 使用 :
中 的 每 一 个
请 注意 ,
p:keyFilter
需要 JavaScript 正则 表达式 , 而 , 而f:validateRegex
需要 Java 正则 表达式 。 并且 ,p:keyFilter inputRegEx
在 按键 时 被 选中 , 而f:validateRegex
在 处理 字段 时 被 执行 。 正确 的p:keyFilter
使用 方法 是 :格式
但 这 仍 将 允许 无效 输入 。
所以 , 在 简历 中 :
| 属性|
p:keyFilter inputRegEx="..."
|f:validateRegex pattern="..."
|| - -| - -| - -|
| 正则 表达式 类型|JavaScript 语言| java |
| 执行 时间|触发 了 键 抬起 JavaScript 事件|已 处理 组件|
这 适用 于 所有 文本 输入 组件 ( 如
p:inputText
) , 因此 不仅 适用 于 您 正在 使用 的p:inputMask
) 。另 请 参阅 :
第 六 次 启动 前
请 注意 ,
p:keyFilter
自 6.0 起 可用 。 对于 较 早 的 版本 , 您 需要 PrimeFaces Extensionspe:keyFilter
。 请 注意 , 6.0 之前 的 PFE 版本 与 PF 版本 不 一致 。为了 完全 不同 的 东西
您 可以 简单 地 使用
p:datePicker
, 它 现在 只能 用于 输入 时间 ( 小时 和 分钟 ) :格式
或者 你 可以 看看
pe:timePicker
。