如何在 laravel 上进行千倍数验证?
How can I make multiples of thousands validation on laravel?
我在 laravel 上的验证是这样的:
return Validator::make($data, [
...
'amount' => 'required|integer|min:20000',
]);
我要amount的值是千的倍数
所以只能输入千位的倍数
例如:25000、50000、151000、200000 等
非千倍数的输入示例:25500、50500、151500、200500 等
我该怎么做?
您可以对该数字取模,使用自定义验证规则实现此逻辑:
https://laravel.com/docs/5.4/validation#custom-validation-rules
应该这样做:
Validator::extend('mod1000', function ($attribute, $value, $parameters, $validator) {
return $value % 1000 == 0;
});
您可以像这样使用正则表达式进行此类验证:
return Validator::make($data, [
...
'amount' => 'required|integer|regex:/^[1-9]+[0-9]*000$/',
]);
表达式中的最后三个零表示千位。第一个数字不应为零,它们之间的任何数字都是对您的案例的完美验证。
希望你明白。
我在 laravel 上的验证是这样的:
return Validator::make($data, [
...
'amount' => 'required|integer|min:20000',
]);
我要amount的值是千的倍数
所以只能输入千位的倍数
例如:25000、50000、151000、200000 等
非千倍数的输入示例:25500、50500、151500、200500 等
我该怎么做?
您可以对该数字取模,使用自定义验证规则实现此逻辑: https://laravel.com/docs/5.4/validation#custom-validation-rules
应该这样做:
Validator::extend('mod1000', function ($attribute, $value, $parameters, $validator) {
return $value % 1000 == 0;
});
您可以像这样使用正则表达式进行此类验证:
return Validator::make($data, [
...
'amount' => 'required|integer|regex:/^[1-9]+[0-9]*000$/',
]);
表达式中的最后三个零表示千位。第一个数字不应为零,它们之间的任何数字都是对您的案例的完美验证。
希望你明白。