【发布时间】:2021-11-30 20:57:47
【问题描述】:
如何在控制器 Laravel 中验证 gpa 的表单输入,最小值为 0,00,最大值为 4,00。
现在我正在使用这样的验证
'gpa' => 'required|max:4|between:0,4|regex:/^[0-9]{1,3}(,[0-9]{3})*\,[0-9]+$/',
但如果我输入 4,01 或 4,98 验证为真。
谢谢。
【问题讨论】:
标签: laravel validation
如何在控制器 Laravel 中验证 gpa 的表单输入,最小值为 0,00,最大值为 4,00。
现在我正在使用这样的验证
'gpa' => 'required|max:4|between:0,4|regex:/^[0-9]{1,3}(,[0-9]{3})*\,[0-9]+$/',
但如果我输入 4,01 或 4,98 验证为真。
谢谢。
【问题讨论】:
标签: laravel validation
您当前的正则表达式略有错误:
^[0-9]{1,3}(,[0-9]{3})*\,[0-9]+$
第一部分 ([0-9]{1,3}) 捕获 1 到 9 范围内的 1、2 或 3 个数字。下一部分 ((,[0-9]{3})*) 捕获零个或多个逗号,然后再捕获 3 个数字。最后一部分捕获一个逗号和一个或多个数字。
下一个正则表达式应该会更好:
(?:[0-3](,\d{1,2})?)|4,00
它捕获 0 到 3 范围内的一个数字,后跟一个逗号,后面跟着一个或两个数字(如果存在),或者它捕获 4,00。
【讨论】: