Laravel 表单验证集规则,例如前两个字符是字母,后四个字符是数字,例如 AB1234

Posted

技术标签:

【中文标题】Laravel 表单验证集规则,例如前两个字符是字母,后四个字符是数字,例如 AB1234【英文标题】:Laravel form validation set rules like first two character are alphabet and last four character numeric like AB1234 【发布时间】:2021-11-25 12:00:50 【问题描述】:

请帮助我,我是 laravel 的新手。我将表单验证设置为前两个字符是字母,后四个字符是数字。示例 AB1234

【问题讨论】:

您应该使用正则表达式创建自己的规则。见docs for creating a new rule。 /[A-Z]2[0-9]4/m ..使用 Laravel 验证器的正则表达式验证方法来验证您的值 【参考方案1】:

正如 cmets 所说,您可以通过正则表达式来做到这一点:

$validated = $request->validate([
    'some_col' => ['string', 'regex:/^[A-Z]2[0-9]4$/'],
    // other rule
]);

根据docs,此规则使用preg_match,因此您应该遵循preg_match 要求的相同格式。不要忘记使用 array 来指定规则(就像示例代码一样)。

【讨论】:

【参考方案2】:

在验证器中使用正则表达式,

return Validator::make($data, [
    'your_input' => [
        'required',
        'regex:/^[a-zA-Z]2[0-9]4+$/',
    ]
]);

您需要在正则表达式上添加 ^$ 以确保它匹配 First 2 和 4 End

【讨论】:

此代码正在运行,非常感谢。 不客气 :)

以上是关于Laravel 表单验证集规则,例如前两个字符是字母,后四个字符是数字,例如 AB1234的主要内容,如果未能解决你的问题,请参考以下文章

具有唯一字段的 Laravel 验证服务

Laravel 密码验证规则有错误

在 Laravel 5 中使用表单请求验证时如何添加自定义验证规则

Laravel 5.5 / 验证器 / 自定义规则

Laravel 验证规则“不同”

Laravel 表单请求验证规则“必需”不适用于空值