^(0)?[0-9]{0,}((\.){1}[0-9]{0,2}){0,1}$
Run Code Online (Sandbox Code Playgroud)
上面的正则表达式使我可以输入最多4个小数位的数字,并在小数点(。)点之前输入一个可选的0。但是当我不输入小数点后的数字(如0、12等)时,这不会引发错误。!!!
任何指导。
这是因为您允许在0到2位之间输入数字.。
由于您说的是1到4位数字,因此您可能需要这样做:
^[0-9]*(\.[0-9]{1,4})?$
Run Code Online (Sandbox Code Playgroud)
注意,我已经替换{0,}为*和{0,1},?因为它们是等效的。
另外,我还删除了{1},因为它默认情况下匹配一次。
最初(0)?也有点多余。
当心,此正则表达式匹配.50。如果要确保小数点之前存在数字,则将第一个*改为+如下:
^[0-9]+(\.[0-9]{1,4})?$
Run Code Online (Sandbox Code Playgroud)
为了进一步简化正则表达式,你也可以更换[0-9]与\d大多数正则表达式引擎,为您提供:
^\d+(\.\d{1,4})?$
Run Code Online (Sandbox Code Playgroud)