Frage

Ich brauche einen (php) regex Yahoos Benutzername Regeln entsprechen:

  

Mit 4 bis 32 Zeichen und mit einem Buchstaben beginnen. Sie können Buchstaben, Zahlen, Unterstrichen verwenden, und einen Punkt (.).

War es hilfreich?

Lösung

/^[A-Za-z](?=[A-Za-z0-9_.]{3,31}$)[a-zA-Z0-9_]*\.?[a-zA-Z0-9_]*$/

oder etwas kürzer:

/^[a-z](?=[\w.]{3,31}$)\w*\.?\w*$/i

Andere Tipps

/[a-zA-Z][a-zA-Z0-9_]*\.?[a-zA-Z0-9_]*/

Und überprüfen, ob strlen ($ username)> = 4 und <= 32.

A einen Punkt Grenze? Das ist schwierig.

Ich bin kein regex Experte, aber ich denke, das es bekommen würde, mit Ausnahme, dass:

[A-Za-z][A-Za-z0-9_.]{3,31}

Vielleicht könnten Sie für das überprüfen. Anforderung separat?

Lookaheads Verwenden Sie könnte wie folgt vor:

^(?=[A-Za-z](?:\w*(?:\.\w*)?$))(\S{4,32})$

Weil Sie nicht angegeben, welche Art von Regex Sie brauchte ich eine Menge von Perl 5 kompatibel Material hinzugefügt. Wie (?: ... ) für Nicht-Capturing Pars.

. Hinweis: Ich habe die fehlende Nähe paren zurück in

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top