2013-10-20 539 views
-2

我正在試圖找到一個正則表達式,該表達式適用於小數點前兩位數和小數點後兩位數的最大小數。小數點和小數位是可選的。因此,這些值將被接受:在小數點前最多2位數的小數的正則表達式

90 
5.4 
45.21 
0.5 
0 

而且將被拒絕:

100 
105.56 
05.6 
55.543 
78. 

任何正則表達式大師能幫忙嗎?

+1

你嘗試過什麼嗎? – Stefan

+1

爲什麼'05.6'和'78.'會被拒絕? –

回答

1

這應該工作:

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

如果你想接受甚至0.5,試試這個:

^(?:[1-9]\d?|0)(?:\.\d{1,2})?$ 
+0

差不多,但我也需要它接受例如0.5和0 – user517406

+0

@ user517406:我已更新了我的答案。 – user278064

+0

非常好,像魅力一樣工作。出於興趣,我將如何修改它只接受小數點前的1位而不是2?我會刪除第一個(?:)嗎? – user517406

0

我希望這會爲你工作

\d{0,2}(\.\d{1,2})? 
0
/\A[1-9]?\d(?:\.\d{1,2})?\z/ 

..................

相關問題