如何使用验证器校验cedula字段为固定10位长度的数字字符串
Laravel cedula字段10位纯数字字符串验证规则实现
原有规则失效原因
size校验规则作用于numeric类型的入参时,校验逻辑为判断数值本身大小是否等于指定值,而非字符串长度,因此你之前的规则只会允许数值为10的入参通过,不符合需求。
正确验证规则
方案1:使用Laravel内置digits规则(推荐)
你提到的digits规则是Laravel官方专门用于校验入参为纯数字且长度等于指定值的规则,搭配string规则明确要求字段为字符串类型,完美匹配需求:
'cedula' => ['required', 'string', 'digits:10'],
方案2:使用正则规则兜底
如果需要更高的自定义灵活度,也可以用正则实现同等校验效果:
'cedula' => ['required', 'string', 'regex:/^\d{10}$/'],
校验效果验证
上述两种规则均能完全匹配你的要求:
- 入参
132456:长度仅6位,校验不通过 - 入参
1315987423:10位纯数字字符串,校验通过 - 入参
131598742B:包含非数字字符B,校验不通过
内容的提问来源于stack exchange,提问作者Diego Utreras
相关产品推荐
相关产品推荐

