正十进制数的正则表达式,小数位数为0,1或2

Pav*_*l F 1 regex

请帮我正则表达正十进制数,小数点后0,1或2.它必须允许逗号和点.例如,它必须允许:

0,01
0.01
0,1
1
1.1
1,11
Run Code Online (Sandbox Code Playgroud)

但不允许:

-1
0.0
0,00
.01
0
1,111
1.111
Run Code Online (Sandbox Code Playgroud)

我有这个, /(^\d*(?:\.|\,)?\d*[1-9]+\d*$)|(^[1-9]+\d*(?:\.|\,)\d*$)/ 但我找不到如何禁止超过2位小数.

更新 男士,我必须拒绝0.0,0等等

age*_*t-j 5

编辑2:现在完全不允许0,0.0等

这匹配小数点前至少一位数,后跟可选的小数位,后跟0-2位.

负向前瞻寻找任何绝对零的味道并防止匹配.

^(?!0*[.,]0*$|[.,]0*$|0*$)\d+[,.]?\d{0,2}$
Run Code Online (Sandbox Code Playgroud)

这是原始正则表达式,因此您需要根据您的语言进行适当的转义.(例如,在某些语言中,您需要将\斜杠加倍\\.

/^(?!0*[.,]0*$|[.,]0*$|0*$)\d+[,.]?\d{0,2}$/
Run Code Online (Sandbox Code Playgroud)