2013-10-20 519 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/ 

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

相关问题