如何在Laravel中用一条规则同时验证整数和浮点数最大位数
Laravel 数值总位数限制验证规则
你可以通过组合系统规则和正则规则实现需求,具体代码如下:
return [ 'max_debit' => [ 'required', 'numeric', 'min:0', 'regex:/^(?!\D*(\d\D*){10})\d+(?:\.\d+)?$/' ] ];
规则说明
required、numeric、min:0三个规则保证字段必填、属于合法数字、数值≥0,同时兼容整数、浮点数两种格式- 正则内的负向先行断言
(?!\D*(\d\D*){10})限制字符串内的数字总个数不超过9位,完全匹配总位数最大限制的需求 - 正则后半段
\d+(?:\.\d+)?保证数字格式合法,支持无小数的整数、带小数的浮点数
验证效果
可通过校验的示例:
1234.55(总数字位数6位)123456789(9位整数)0.12345678(总数字位数9位)被拦截的示例:
12345678.55(总数字位数10位,超出上限)-100(数值为负,被min:0拦截)- 非数字字符串(被
numeric拦截)
内容的提问来源于stack exchange,提问作者Gonçalo Bastos
相关产品推荐
相关产品推荐

