我正在尝试编写一个正则表达式来接受 1-99 的正数并接受最多 2 位的小数 我已经写了这个表达式
([1-9]|[1-9][0-9])(.[0-9]{1,2})?
但是当我测试表达式时,它接受 100 和最多 3 位的小数,而我只想要最多 2 位的小数,不应该接受 100。
我正在尝试编写一个正则表达式来接受 1-99 的正数并接受最多 2 位的小数 我已经写了这个表达式
([1-9]|[1-9][0-9])(.[0-9]{1,2})?
但是当我测试表达式时,它接受 100 和最多 3 位的小数,而我只想要最多 2 位的小数,不应该接受 100。
.
将匹配任何字符的转义为\.
。您周围没有分隔符,因此请注意这将匹配,例如,字符串 191.234 中的 91.23。
([1-9]|[1-9][0-9])(\.[0-9]{1,2})?
这似乎对我有用:
/^[1-9][0-9]?(\.[0-9]{1,2})?$/
正如大卫所说,您需要转义您的.
, 或者它匹配任何字符,包括数字。
我会选择这个^(?:\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
在第一次评论后编辑答案。
这将匹配 1-99 和最多 2 个小数位。
((0?[1-9]|[1-9][0-9])\.[0-9]{1,2})