请帮我正则表达正十进制数,小数点后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等等
编辑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)