正数的正则表达式,从1-99到小数点后2位

时间:2012-07-19 15:55:19

标签: regex

我正在尝试编写一个正则表达式,用于接受1-99的正数并接受最多2位的小数 我写了这个表达

([1-9]|[1-9][0-9])(.[0-9]{1,2})?

但是当我测试表达式时,它接受100和小数最多3个位置,而我希望小数最多只有2个位置而且不应该接受100个。

4 个答案:

答案 0 :(得分:3)

将符合.的任何字符的\.转义为([1-9]|[1-9][0-9])(\.[0-9]{1,2})? 。你没有这个分隔符,所以请注意,这将匹配,例如,字符串191.234中的91.23。

{{1}}

答案 1 :(得分:3)

这似乎对我有用:

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

正如大卫所说,你需要逃脱你的.,或者它匹配任何角色,包括一个数字。

答案 2 :(得分:-1)

我会选择这个^(?:\d[1-9]|[1-9]|[1-9][0-9])(?:\.(?:[0-9][1-9]|[1-9]))?$

0 FAIL
0.0 FAIL
0.00 FAIL
0.1 FAIL
0.12 FAIL
1 PASS
12 PASS
135 FAIL
1.00 FAIL?
01.35 PASS
10.35 PASS
12.01 PASS
12.1 PASS
12.23 PASS
12.234 FAIL

在第一次评论后编辑回复。

答案 3 :(得分:-1)

这将匹配1-99和最多2位小数。

((0?[1-9]|[1-9][0-9])\.[0-9]{1,2})