使用逗号作为小数分隔符验证数字的最佳方法是什么?

Sam*_*ker 5 php validation laravel

在Laravel应用程序中,我有一个表单,我需要用逗号作为小数分隔符来验证数字.目前,它只适用于一点,因为我的验证规则是:

$rules = [
    'amount' => 'numeric|min:0',
];
Run Code Online (Sandbox Code Playgroud)

什么是最好的方法:

  • 在验证之前保留规则并用点替换逗号?是否有一个before_validation观察者或类似的东西?
  • 构建自定义验证规则?例如french_numeric?

The*_*pha 9

Laravel支持regex验证规则中的模式,因此您可以使用给定的模式匹配类似的东西,12,365.00并且当使用正则表达式作为规则时,建议使用数组而不是管道

$rules = array('amount' => array('match:/^[0-9]{1,3}(,[0-9]{3})*\.[0-9]+$/'));
Run Code Online (Sandbox Code Playgroud)

检查此链接.此外,如果您想以任何理由删除逗号,请检查此答案.