这里是我的正则表达式:/^\d+(.\d{1,2})|null?$/
但是它没有用
我想允许两个小数点。
Like :
123.23 / true
123.568 / false
null / true
您需要重新组织分组:
^(?:\d+(?:\.\d{1,2})?|null)$
RegEx详细信息:
^
:开始(?:
:启动非捕获组\d+(?:\.\d{1,2})?
:匹配整数或浮点数|
:ORnull
:匹配null
)
:结束非捕获组$
:结束您可以尝试用这种方法用Null
-检查preg_match()
或2个小数位>
https://3v4l.org/vLZs4<?php function validateTwoDecimalOrNull($number) { if($number == null || preg_match('/^[0-9]+\.[0-9]{2}$/', $number)) return true; else return false; } echo "Greater than 2 decimal places=".validateTwoDecimalOrNull(12.22444); echo PHP_EOL; echo "Null value=".validateTwoDecimalOrNull(null); echo PHP_EOL; echo "2 decimal places=".validateTwoDecimalOrNull(12.22); ?>
工作演示: