Preg_match pour tous les caractères spéciaux, vérification de mot de passe
Ok, donc je suis en train d'écrire un vérificateur de mot de passe pour notre stratégie de mot de passe qui nécessite 3 des 4 grandes classifications. Où je vais avoir des problèmes avec, est le caractère spécial de match.
Voici ce que j'ai à ce jour:
private function PasswordRequirements($ComplexityCount) {
$Count = 0;
if(preg_match("/\d/", $this->PostedData['password']) > 0) {
$Count++;
}
if(preg_match("/[A-Z]/", $this->PostedData['password']) > 0) {
$Count++;
}
if(preg_match("/[a-z]/", $this->PostedData['password']) > 0) {
$Count++;
}
//This is where I need help
if(preg_match("/[~`!@#$%^&*()_-+=\[\]{}\|\\:;\"\'<,>.]/", $this->PostedData['password']) > 0) {
$Count++;
}
if($Count >= $ComplexityCount) {
return true;
} else {
return false;
}
}
Donc, fondamentalement, ce que je fais est la vérification de la chaîne pour chaque cas, des chiffres, des majuscules, des minuscules et des caractères spéciaux. Nous n'avons pas de restrictions sur n'importe quel caractère spécial et j'ai aussi besoin de caractères unicode. Le \W dans ce cas ou cela serait-il inclure le nombre de nouveau? Je ne peux pas trouver une documentation sur \W, donc je suis pas clair sur cette partie.
Personne ne sait d'un simple regexp qui couvrirait tous les caractères spéciaux et des caractères unicode qui ne comprennent pas les chiffres et les lettres?
Chacun est libre d'utiliser ce que je pense plus que peu de gens ont été à la recherche pour cela.
OriginalL'auteur JeffBaumgardt | 2011-11-08
Vous devez vous connecter pour publier un commentaire.
Ce modèle permettrait à tous les caractères qui n'est pas un chiffre ou un-Z.
Concernant la
\W
c'est un niée\w
, qui est le même que[A-Za-z0-9_]
. Donc\W
être tous les caractères qui n'est pas un anglais lettre, un chiffre ou un caractère de soulignement.Comme je l'ai mentionné dans un commentaire c'est une grande ressource pour l'apprentissage de la regex. Et voici un bon site pour test de la regex.
Et merci pour la très rapide responce
OriginalL'auteur Marcus
Dans le cas où vous voulez faire correspondre à des caractères spéciaux
OriginalL'auteur pmm
Vous pouvez utiliser les caractères POSIX classe
[[:punct:]]
pour le "spécial" personnages:donne:
OriginalL'auteur DTest