2016-08-23 59 views
0

非负和非零我有一个要求验证某些输入应是在格式### ##正则表达式的格式### ##

无效输入是:

-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

'If(thatString> 0 && thatString is in format /^\d{1,3}(\.\d{1,2})?$/){CORRECT VALUE。 }' – Tushar

+1

'if(x <= 0){错误! }' – ClasG

+1

在'^'后面加'(?!0 * \。?0 + $)'''。 –

回答

2

尝试

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

应该为你做它。

它从一个积极的前瞻开始,以确保有一个数字不是0目前。 然后它匹配1-3位数字,可选地跟一个.和1-2位数字。

Your regex101 updated

0

([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来检查它。 它也适用于负值,但是这个正则表达式也排除了它们。