L’expression régulière du mot de passe peut être utilisée pour contrôler la forme d’un mot de passe et qu’un mot de passe fourni est suffisamment fort pour offrir une meilleure protection contre les attaques par force brute des robots.
Expression régulière pour un mot de passe solide
L’expression régulière ci-dessous vérifie qu’un mot de passe :
- Formé d'un minimum de 8 caractères. Ajustez-le en modifiant {8,}
- Au moins une lettre majuscule. Vous pouvez supprimer cette condition en supprimant (?=.* ?[A-Z])
- Au moins une lettre minuscule. Vous pouvez supprimer cette condition en supprimant (?=.* ?[a-z])
- Au moins un chiffre. Vous pouvez supprimer cette condition en supprimant (?=.* ?[0-9])
- Au moins un caractère spécial, Vous pouvez supprimer cette condition en supprimant (?=.* ?[#?!@$%^&*-])
/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/
Version JavaScript
Le format d’un email valide est le suivant email@domain.com. La fonction prend en paramètre l’adresse email et lance ensuite une comparaison avec l’expression régulière. S’il ne trouve aucune correspondance, il échoue la validation et la fonction renvoie false, si la correspondance renvoie true, l’email aura un format correct et la fonction retournera true. La fonction Javascript pour valider le courriel
/**
* Valider un mot de passe
*
* Si le mot de passe n'est pas assez sécurisé, retournez false
*
* @param mdp
* @return Boolean
*/
function validateMDP(mdp){
var Reg = new RegExp(/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/);
return Reg.test(mdp);
}
Comment utiliser la fonction Javascript
La meilleure façon de l’utiliser sera dans une déclaration IF comme ci-dessous.
if(validateMDP(mdp)){
alert("Mot de passe valide");
} else {
alert("Mot de passe invalide");
}
See the Pen Valider un email avec une expression régulière by Damien Flandrin (@dam62500) on CodePen.0
Version PHP
/*
* valider mot de passe
* @param $mdp
*/
function isValidMDP($mdp)
{
return preg_match('/^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}$/', $mdp)
}
Version HTML
Vous pouvez vérifier en HTML en amont de la validation en php et javascript via l’attribut pattern vous permettant de mettre en avant avec du CSS si le mot de passe respecte l’expression régulière.
<input
name="mdp"
type="text"
pattern="(?=.*?[A-Z])(?=.*?[a-z])(?=.*?[0-9])(?=.*?[#?!@$%^&*-]).{8,}"
/>
See the Pen Vérifier une date avec une expression régulière en HTML by Damien Flandrin (@dam62500) on CodePen.0
- .IOlZPf1
- !A1o2e3r4
- etc