Nom d'utilisateur Yahoo
-
05-07-2019 - |
Question
J'ai besoin d'une expression rationnelle (php) pour correspondre aux règles de nom d'utilisateur de Yahoo:
Utilisez 4 à 32 caractères et commencez par une lettre. Vous pouvez utiliser des lettres, des chiffres, des traits de soulignement et un point (.).
La solution
/^[A-Za-z](?=[A-Za-z0-9_.]{3,31}$)[a-zA-Z0-9_]*\.?[a-zA-Z0-9_]*$/
Ou un peu plus court:
/^[a-z](?=[\w.]{3,31}$)\w*\.?\w*$/i
Autres conseils
/[a-zA-Z][a-zA-Z0-9_]*\.?[a-zA-Z0-9_]*/
Et vérifiez si strlen ($ username) > = 4 et < = 32.
Une limite d'un point? C'est délicat.
Je ne suis pas un expert en regex, mais je pense que cela l’aurait, sauf pour cela:
[A-Za-z][A-Za-z0-9_.]{3,31}
Peut-être que vous pourriez vérifier pour le. exigence séparément?
À l'aide de lookaheads, vous pouvez effectuer les opérations suivantes:
^(?=[A-Za-z](?:\w*(?:\.\w*)?$))(\S{4,32})$
Parce que vous n'avez pas spécifié le type de regex dont vous aviez besoin, j'ai ajouté beaucoup de choses compatibles Perl 5. Comme (?: ... )
pour les parenthèses sans capture.
Remarque: , j'ai rajouté le fichier de fermeture manquant.