格式为###.##的非负和非零的Regex

Regex for non negative and non zero for the format ###.##

本文关键字:Regex 格式      更新时间:2023-09-26

我需要验证一些输入,这些输入的格式应该是###

无效输入为:

-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不匹配?

感谢帮助

尝试

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

它应该为你做这件事。

它从积极的展望开始,以确保存在除0之外的数字。然后它匹配1-3个数字,可选地后面跟一个.和1-2个数字。

您的regex101已更新。

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

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

('.[0-9]{1,2})?="?"可能有一个浮动尾

('.[0-9]{1,2})=浮点尾部必须以点开头,小数位数必须达到2

有一种方法可以排除所有的零序列,但它会毫无理由地浪费你的时间,因为你可以简单地用if myNum > 0检查它。它也适用于负值,但此正则表达式也将它们排除在外。

^[1-9][0-9]*('.[0-9]+)?$|^0'.[0-9]+$

这对你有用。它接受除0以外的所有有效的正十进制数字。