2013-02-12 44 views
1

我遇到了關於primefaces擴展中的keyfilter的問題。 我想定義一個時間段的正則表達式,例如「P1Y3M2W1d」。 的鍵過濾器下面的正則表達式使用:primefaces keyfilter正則表達式

<pe:keyFilter regEx="/P[0-9]*Y*[0-9]*M*[0-9]*W*[0-9]*d*/" /> 

的目標是,用戶可能只鍵入P第一則位數0-9,事後Y(年),M(月)或W(周)等等。問題是我只能輸入captial 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中唯一的可能性是captial P

+0

了'P'後什麼是可以接受的?是否需要提供其他部分(Y,M,W,d)還是可選的?您當前的正則表達式肯定會接受輸入字符串「P」,因爲您在所有其他部分使用了「*」量詞。 – eldarerathis 2013-02-12 15:20:54

+0

P之後可以接受的數字如0-9。其他部分(Y,M,W,d)是可選的,但您至少需要輸入一個字符,例如P3Y或P3M。 – user1063808 2013-02-12 15:45:48

回答

0

嘗試

regEx="/P([0-9]+Y)?([0-9]+M)?([0-9]+W)?([0-9]+d)?/" 
+0

該正則表達式是正確的,但不知何故不適用於該關鍵過濾器。我只能輸入資料P – user1063808 2013-02-12 16:09:50

+0

@ user1063808當你說你只能輸入P時,你的意思是什麼?當你輸入下一個字符時會發生什麼?此過濾器是交互式還是靜態? – ilomambo 2013-02-12 16:29:36

+0

是的,在用戶界面中,我只能輸入字母P,另一個字符是禁止的。奇怪!!! – user1063808 2013-02-13 08:23:02