Laravel从验证器验证电子邮件的域

时间:2017-02-06 13:28:47

标签: laravel validation laravel-5.3

我想在用户输入无效域时验证域名,例如theemail@invaliddomainame.com

    $createAccount_validator = Validator::make($request->all(), [

            'username'=>'required|min:6',
            'email'=>'required|email|unique:userTable)',

    ]);

目前,电子邮件验证的API非常优惠,所以我不想使用。

1 个答案:

答案 0 :(得分:1)

~app/Http/Requests/UserRequest.php 下,您可以对 email_domain 字段使用正则表达式,例如

/**
 * Get the validation rules that apply to the request.
 *
 * @return array
 */
public function rules()
{
    return [
        ...
        'email_domain' => [
            'required', 
            'regex:/^(?!\-)(?:(?:[a-zA-Z\d][a-zA-Z\d\-]{0,61})?[a-zA-Z\d]\.){1,126}(?!\d+)[a-zA-Z\d]{1,63}$/',
        ]
    ];
}

This pattern I'm using 符合规范中定义的大部分规则。请注意,在这种情况下,我们需要在前后使用 /