1

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

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

但是当我测试表达式时,它接受 100 和最多 3 位的小数,而我只想要最多 2 位的小数,不应该接受 100。

4

4 回答 4

3

.将匹配任何字符的转义为\.。您周围没有分隔符,因此请注意这将匹配,例如,字符串 191.234 中的 91.23。

([1-9]|[1-9][0-9])(\.[0-9]{1,2})?
于 2012-07-19T15:56:57.980 回答
3

这似乎对我有用:

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

正如大卫所说,您需要转义您的., 或者它匹配任何字符,包括数字。

于 2012-07-19T16:02:18.967 回答
-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

在第一次评论后编辑答案。

于 2012-07-19T16:02:44.113 回答
-1

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

((0?[1-9]|[1-9][0-9])\.[0-9]{1,2})
于 2012-07-19T16:02:52.920 回答