0

I've been trying for a while to create custom messages for regexes. So far, I have been able to get this as a message.

But I would like for each regex to be able to put messages, example: for the regex[A-Z] I would like them to have their own custom messages and not have the same and unique message for all of them.

$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',
        ]);

I would like something like this 'regex:/[a-z]/'=> 'One letter between a to z'

Thank a lot

1
  • There is a password class just for this, and it outpust exactly what you want Commented Jun 26, 2021 at 23:16

1 Answer 1

1

Try this:

$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',
    ]);
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.