【发布时间】:2013-02-12 15:16:23
【问题描述】:
我遇到了关于 primefaces 扩展中的 keyfilter 的问题。 我想为一个时间段定义一个正则表达式,例如“P1Y3M2W1d”。 使用以下键过滤器的正则表达式:
<pe:keyFilter regEx="/P[0-9]*Y*[0-9]*M*[0-9]*W*[0-9]*d*/" />
目标是用户只能先输入 P,然后输入数字 0-9,然后是 Y(年)、M(月)或 W(周)等等。问题是我只能输入大写字母 P 而不能输入其他内容。我检查正则表达式。它是正确的。 keyFilter 中的正则表达式有什么问题? 谢谢帮忙!!!
更新:
<p:inputText value="#{cc.attrs.value}" id="period" >
<pe:keyFilter regEx="/P([0-9]+Y)?([0-9]+M)?([0-9]+W)?([0-9]+d)?/" />
</p:inputText>
我认为 primefaces 扩展使用 jquery keyfilter 插件。正则表达式应该在“//”周围引用,但不知何故,我的 UI 中唯一的可能性是大写 P
【问题讨论】:
-
P之后可以接受什么?是否必须提供其他部分(Y、M、W、d)或者它们是可选的?您当前的正则表达式肯定会接受输入字符串P,因为您在所有其他部分都使用了*量词。 -
P后面可接受的数字是0-9等数字。其他部分 (Y,M,W,d) 是可选的,但您需要输入至少一个字符,例如 P3Y 或 P3M。
标签: regex primefaces keyfilter