Laravel新手如何设置表单验证规则实现前两位字母后四位数字校验
Laravel 前2位字母后4位数字格式的表单验证实现方案
核心使用 Laravel 内置的 regex 验证规则配合正则表达式即可实现需求,以下是两种常用实现方式:
1. 直接写正则验证(单次使用场景)
匹配规则的正则为 ^[A-Za-z]{2}\d{4}$,其中:
^匹配字符串开头[A-Za-z]{2}匹配前2位任意大小写英文字母\d{4}匹配后4位数字$匹配字符串结尾,确保总长度固定为6位
在控制器中直接使用的示例代码:
public function store(Request $request) { $validated = $request->validate([ // 将your_field替换为你的实际表单字段名 'your_field' => 'required|string|size:6|regex:/^[A-Za-z]{2}\d{4}$/', ], [ // 自定义错误提示 'your_field.regex' => '输入格式错误,需符合前2位为英文字母、后4位为数字的格式,例如AB1234' ]); // 后续业务逻辑 }
额外加
size:6规则可以提前过滤长度不符合的输入,双重校验准确性更高。
2. 自定义验证规则(多场景复用)
如果多个接口/页面都需要用到这个验证规则,可封装为独立的自定义规则:
- 运行命令生成规则类:
php artisan make:rule TwoLetterFourNum - 编辑生成的
app/Rules/TwoLetterFourNum.php文件:
<?php namespace App\Rules; use Illuminate\Contracts\Validation\Rule; class TwoLetterFourNum implements Rule { public function passes($attribute, $value) { return preg_match('/^[A-Za-z]{2}\d{4}$/', $value); } public function message() { return ':attribute 格式错误,必须为前2位英文字母、后4位数字的6位字符,示例:AB1234'; } }
- 业务代码中调用规则:
use App\Rules\TwoLetterFourNum; $validated = $request->validate([ 'your_field' => ['required', 'string', new TwoLetterFourNum], ]);
可选调整
如果要求字母必须为大写,将正则中的a-z删除即可,修改为 ^[A-Z]{2}\d{4}$。
内容的提问来源于stack exchange,提问作者waqar
相关产品推荐
相关产品推荐

