Nome utente Yahoo Regex
-
05-07-2019 - |
Domanda
Ho bisogno di una regex (php) per abbinare le regole del nome utente di Yahoo:
Usa da 4 a 32 caratteri e inizia con una lettera. Puoi usare lettere, numeri, trattini bassi e un punto (.).
Soluzione
/^[A-Za-z](?=[A-Za-z0-9_.]{3,31}$)[a-zA-Z0-9_]*\.?[a-zA-Z0-9_]*$/
O un po 'più breve:
/^[a-z](?=[\w.]{3,31}$)\w*\.?\w*$/i
Altri suggerimenti
/[a-zA-Z][a-zA-Z0-9_]*\.?[a-zA-Z0-9_]*/
E controlla se strlen ($ username) > = 4 e < = 32.
Un limite di un punto? È difficile.
Non sono un esperto di regex, ma penso che questo lo otterrebbe, tranne per quello:
[A-Za-z][A-Za-z0-9_.]{3,31}
Forse potresti controllare per. requisito separatamente?
Usando i lookaheads potresti fare quanto segue:
^(?=[A-Za-z](?:\w*(?:\.\w*)?$))(\S{4,32})$
Dato che non hai specificato il tipo di regex di cui hai bisogno, ho aggiunto molte cose compatibili con Perl 5. Come (?: ... )
per i genitori non catturanti.
Nota: ho aggiunto nuovamente la parentesi chiusa mancante.