【发布时间】:2016-12-21 04:32:30
【问题描述】:
我正在尝试用两位小数验证双精度,但我无法实现。 这是我尝试过的正则表达式和错误:
第一次尝试:
$validation = ['price' => 'regex:[0-9]+(\.[0-9][0-9]?)?'];
错误:
preg_match(): 未知修饰符'+'
第二次尝试:
$validation = ['price' => 'regex:[0-9]+(\.[0-9][0-9]?)?'];
错误:
preg_match():分隔符不能是字母数字或反斜杠
第三次尝试:
$validation = ['price' => 'regex:\d+(\.\d{2})?|\.\d{2}'];
错误:
preg_match():分隔符不能是字母数字或反斜杠
我从这个问题中得到了所有的正则表达式:Simple regular expression for a decimal with a precision of 2
我做错了什么?或者还有其他方法可以验证Laravel 中的两位小数的双精度数吗?
【问题讨论】:
-
试试
$validation = ['price' => 'regex:/[0-9]+(\.[0-9][0-9]?)?/']; -
@WiktorStribiżew 谢谢它的工作,但有什么办法可以防止超过两位小数?
-
您的意思是只允许
1.22而不允许1.233?试试$validation = ['price' => 'regex:/^[0-9]+(\.[0-9][0-9]?)?$/']; -
@WiktorStribiżew 是的,非常感谢!!