J'utilise le script ci-dessous pour vérifier mes mots de passe pour la longueur, les majuscules, les minuscules et les numéros.
Comment puis-je modifier-le pour que cela vérifie les symboles au lieu des symboles? P>
<?php
$password = 'afsd323A';
if(
//I want to change this first line so that I am also checking for at least 1 symbol.
ctype_alnum($password) // numbers & digits only
&& strlen($password)>6 // at least 7 chars
&& strlen($password)<21 // at most 20 chars
&& preg_match('`[A-Z]`',$password) // at least one upper case
&& preg_match('`[a-z]`',$password) // at least one lower case
&& preg_match('`[0-9]`',$password) // at least one digit
)
{
echo 'valid';
}
else
{
echo 'not valid';// not valid
}
?>
4 Réponses :
Tests Si l'entrée consiste en 6 caractères ASCII ou plus. L'entrée doit contenir au moins une lettre majuscule, une lettre minuscule et un chiffre.
if(preg_match('/\A(?=[\x20-\x7E]*?[A-Z])(?=[\x20-\x7E]*?[a-z])(?=[\x20-\x7E]*?[0-9])[\x20-\x7E]{6,}\z/' $password))
echo("valid password");
Pour vérifier s'il contient des caractères non alphanumériques, essayez ces expressions régulières: si (Preg_Match ('/ [^ A-ZA-Z0-9] /', $ mot de passe) echo ("mot de passe contient des caractères non alphanumériques") ; code>
Soit vous déterminez une liste de symboles valides: ou vous pouvez rechercher tout ce qui n'est pas alnum: p> preg_match('`[^0-9a-zA-Z]`',$password)
Sauf que l'OP veut que le mot de passe contienne au moins un de chacun. Au moins un supérieur, un plus bas, un chiffre et un symbole.
Votre regex souhaitée est inférieur à Démo < / h2> p>
S'il vous plaît essayez de google ... voici
J'ai optimisé un peu ((? =. * [A-Z]) (? =. * [A-Z]) (? =. * \1}). {7,21}). {7,21}). {7,21}). {7,21}). {7,21}). {7,21}). {7,21}). votre - en 50 étapes; code>
@Dmitrij comment trouvez-vous les étapes ?? tout site web ?? se il vous plaît se référer
J'utilise Regexbuddy (outil puissant et puce). Exemple de débogage Vous pouvez trouver ici
J'ai essayé avec cela, fonctionnant.
Veuillez ajouter quelques explications à votre réponse, de sorte que d'autres puissent en apprendre
Vous vérifiez pour i> caractères. Pouvez-vous clarifier ce que vous voulez faire à la place?
Vous voulez donc que le mot de passe contienne au moins un symbole aussi?
Jacob droit. Chiffres inférieurs et caractères supérieurs
Eh bien, la première ligne vérifie uniquement les "chiffres et chiffres", je commencerais en supprimant cela ...
Le problème avec l'utilisation de toutes ces fonctions dans une instruction IF, est que vous traversez la chaîne au moins 4 fois, peut-être 6 (selon Si PHP stocke la longueur de la chaîne).