2015-12-02 15 views
0

我想驗證一個文本框來,這只是數字和一個小數,但小數點保留導致驗證熄滅:Vaadin:如何做一個驗證器接收數字和小數點後僅

TextField tf = new TextField(); 
tf.addValidator(new RegexpValidator("^\\d+$", facilityId.getCaption() + "Only numbers and one decimal allowed.")); 

所以我得到的數字工作,但我怎麼告訴驗證者,「。」沒關係?

注意:插件不是一個選項。

回答

1

此正則表達式應該工作

/^\d+\.\d$|^\d+$/ 

擊穿

^ - 線

開始

\d+ - 一個或多個數字

\. - 逃離一段否則會匹配任何字符

\d$ - 或者

^\d+$ - - 它十進制

|後一個數字結尾,具有任意數量的數字沒有小數點

+1

我不知道vaadmin,而是「?」會是一個更好的解決方案,我相信它也應該知道這一點。^ \ d +(\。\ d)?$ – zolo

+0

「invalid escape sequence」 – Null

+0

tf.addValidator(new RegexpValidator(「/^\ d + \ .d $ |^\ d + $ /」,facilityId.getCaption()+ 「 包含無效字符。」)); 給我編譯錯誤「無效的轉義序列」。 – Null

相關問題