Nombre de usuario de Yahoo Regex
-
05-07-2019 - |
Pregunta
Necesito una expresión regular (php) para que coincida con las reglas de nombre de usuario de Yahoo:
Use de 4 a 32 caracteres y comience con una letra. Puede usar letras, números, guiones bajos y un punto (.).
Solución
/^[A-Za-z](?=[A-Za-z0-9_.]{3,31}$)[a-zA-Z0-9_]*\.?[a-zA-Z0-9_]*$/
O un poco más corto:
/^[a-z](?=[\w.]{3,31}$)\w*\.?\w*$/i
Otros consejos
/[a-zA-Z][a-zA-Z0-9_]*\.?[a-zA-Z0-9_]*/
Y compruebe si se ha eliminado ($ username) > = 4 y < = 32.
¿Un límite de un punto? Eso es complicado.
No soy un experto en expresiones regulares, pero creo que esto lo conseguiría, excepto por eso:
[A-Za-z][A-Za-z0-9_.]{3,31}
Tal vez podría verificar el. requisito por separado?
Usando lookaheads podría hacer lo siguiente:
^(?=[A-Za-z](?:\w*(?:\.\w*)?$))(\S{4,32})$
Debido a que no especificó qué tipo de expresión regular necesitaba, agregué muchas cosas compatibles con Perl 5. Como (?: ... )
para padres que no capturan.
Nota: agregué los paren cercanos que faltan nuevamente.