2016-08-23 61 views
0

非負和非零我有一個要求驗證某些輸入應是在格式### ##正則表達式的格式### ##

無效輸入是:

-11.10   ==> no negative 
000.00 or 0  ==> 0 not allowed should be positive 

有效的輸入是:

1 
11 
111 
1.1 
11.11 
111.11 

我曾嘗試用以下的正則表達式^([^-]\d{0,2}(.\d{1,2})?)$除了它接受0,我不希望它滿足了我的要求。我如何修改我的正則表達式,所以只有0不匹配?

感謝您的幫助

+1

'If(thatString> 0 && thatString is in format /^\d{1,3}(\.\d{1,2})?$/){CORRECT VALUE。 }' – Tushar

+1

'if(x <= 0){錯誤! }' – ClasG

+1

在'^'後面加'(?!0 * \。?0 + $)'''。 –

回答

2

嘗試

^(?=.*[1-9])\d{1,3}(?:\.\d\d?)?$ 

應該爲你做它。

它從一個積極的前瞻開始,以確保有一個數字不是0目前。 然後它匹配1-3位數字,可選地跟一個.和1-2位數字。

Your regex101 updated

0

([0-9]){1,3}(\.[0-9]{1,2})?是您正在搜索的表達式。

([0-9]){1,3} =任何長度數序列從1到3

(\.[0-9]{1,2})? = 「?」也許有一個浮動尾

(\.[0-9]{1,2}) =浮動尾必須以點和小數開始已經將高達2

有以除外全零個序列的方式,但它會浪費你的時間,沒有理由,你可以簡單地用if myNum > 0來檢查它。 它也適用於負值,但是這個正則表達式也排除了它們。