对于非负和非零的正则表达式###。##

时间:2016-08-23 13:22:41

标签: javascript java regex

我需要验证一些输入,这些输入应采用格式###。##

输入无效:

-11.10          ==> no negative
000.00 or 0     ==> 0 not allowed should be positive

有效输入是:

1
11
111
1.1
11.11
111.11

我尝试过以下正则表达式^([^-]\d{0,2}(.\d{1,2})?)$,它符合我的要求,除了它接受0我不想要的。我如何修改我的正则表达式,所以只有0不匹配?

感谢您的帮助

2 个答案:

答案 0 :(得分:3)

尝试

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

它应该为你做。

首先是积极的预测,以确保存在除0以外的数字。 然后它匹配1-3个数字,可选地后跟.和1-2个数字。

Your regex101 updated

答案 1 :(得分:0)

([0-9]){1,3}(\.[0-9]{1,2})?是您要搜索的表达式。

([0-9]){1,3} =任何数字序列,长度从1到3

(\.[0-9]{1,2})? =“?”也许有一个浮尾

(\.[0-9]{1,2}) = float tail必须以点开头,十进制数必须最多为2

除了所有零序列之外,还有一种方法,但它会无缘无故地浪费你的时间,因为你可以用if myNum > 0来检查它。 它也适用于负值,但这个正则表达式也将它们排除在外。