首页 > 解决方案 > 自定义消息验证正则表达式 Laravel

问题描述

我一直在尝试为正则表达式创建自定义消息。到目前为止,我已经能够得到这个消息。

但我希望每个正则表达式都能够放置消息,例如:对于正则表达式 [AZ],我希望它们有自己的自定义消息,而不是对所有这些都具有相同且唯一的消息。

$req->validate([
            'login'=> 'required|unique:user',
            'email' => 'required|unique:user|email|regex:/(.+)@(.+)\.(.+)/i',
            'password' => [
                'required',
                'min:8',             // must be at least 10 characters in length
                'confirmed',
                'regex:/[a-z]/',      // must contain at least one lowercase letter
                'regex:/[A-Z]/',      // must contain at least one uppercase letter
                'regex:/[0-9]/',
                'regex:/[@$!%*#?&]/' // must contain a special character
            ],
            'password_confirmation' => 'required'
        ], [
            'login.unique' => "Le nom d'utilisateur est déjà pris",
            'email.unique' => "L'adresse mail est déjà utilisé",
            'required' => 'Le champ est obligatoire',
            'email.regex' => 'Le champ doit respecter le format comme indiqué',
            'email.email'=> 'Le champ doit respecter le format comme indiqué',
            'password.min'=> 'Le mot de passe doit contenir au moins 8 caractères',
            'password.regex' => 'Le mot de passe doit contenir au moins 1 majuscule, 1 minuscule et un caractère spéciale',
            'password.digits_between' => 'Le mot de passe doit contenir au moins 1 chiffres et maximum 10',
            'password.confirmed' => 'Les deux mots de passes doivent être similaire',
        ]);

我想要这样的东西'regex:/[a-z]/'=> 'One letter between a to z'

非常感谢

标签: phplaravel

解决方案


尝试这个:

$req->validate([
        'login'=> 'required|unique:user',
        'email' => 'required|unique:user|email|regex:/(.+)@(.+)\.(.+)/i',
        'password' => [
            'required',
            'min:8',             // must be at least 10 characters in length
            'confirmed',
            'regex:/[a-z]/',      // must contain at least one lowercase letter
            'regex:/[A-Z]/',      // must contain at least one uppercase letter
            'regex:/[0-9]/',
            'regex:/[@$!%*#?&]/' // must contain a special character
        ],
        'password_confirmation' => 'required'
    ], [
        'login.unique' => "Le nom d'utilisateur est déjà pris",
        'email.unique' => "L'adresse mail est déjà utilisé",
        'required' => 'Le champ est obligatoire',
        'email.regex' => 'Le champ doit respecter le format comme indiqué',
        'email.email'=> 'Le champ doit respecter le format comme indiqué',
        'password.min'=> 'Le mot de passe doit contenir au moins 8 caractères',
        'password.regex.0' => 'Le mot de passe doit contenir au moins 1 majuscule',
        'password.regex.1' => 'Le mot de passe doit contenir au moins 1 minuscule',
        'password.regex.3' => 'Le mot de passe doit contenir au moins un caractère spéciale',
        'password.digits_between' => 'Le mot de passe doit contenir au moins 1 chiffres et maximum 10',
        'password.confirmed' => 'Les deux mots de passes doivent être similaire',
    ]);

推荐阅读