Ich bin neu in JavaScript und habe diesen JavaScript-Code im Internet gefunden, der die angegebene E-Mail validiert (kein Problem mit dem Code) -
%Vor% Ich habe keine Probleme mit dem Code, aber irgendwie habe ich nicht verstanden, was der reguläre Ausdruck /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/
bedeutet. Ich verstehe nicht, was jeder Teil des regulären Ausdrucks bedeutet. Bitte erleuchte mich.
Die beiden Forward-Slashes /.../ enthalten eine Regexe.
Das führende ^ und das nachfolgende $ stimmen mit dem Anfang und dem Ende der Eingabezeichenfolge überein. Das heißt, die gesamte Eingabezeichenfolge muss mit dieser Regexe übereinstimmen und nicht mit einem Teil der Eingabezeichenfolge.
\ w + entspricht einem oder mehreren Wortzeichen (a-z, A-Z, 0-9 und Unterstrich).
[.-] entspricht dem Charakter. oder -. Wir müssen verwenden. zu repräsentieren . wie . hat in regexe eine besondere Bedeutung. Das \ ist bekannt als der Escape-Code, der die ursprüngliche wörtliche Bedeutung des folgenden Zeichens wiederherstellt.
[.-]? entspricht 0 oder 1 Vorkommen von [.-].
Wieder entspricht \ w + einem oder mehreren Wortzeichen.
([.-]? \ w +) * entspricht 0 oder mehr Vorkommen von [.-]? \ w +.
Der Unterausdruck \ w + ([.-]? \ w +) * wird verwendet, um den Benutzernamen in der E-Mail vor dem @ -Zeichen abzugleichen. Es beginnt mit mindestens einem Wortzeichen (a-z, A-Z, 0-9 und Unterstrich), gefolgt von weiteren Wortzeichen oder. oder -. Jedoch a. oder - muss durch ein Wortzeichen (a-z, A-Z, 0-9 und Unterstrich) folgen. Das heißt, die Zeichenfolge darf nicht "..", "-", ".-" oder "-." Enthalten. Beispiel für gültige Zeichenfolge sind "a.1-2-3".
Das @ passt sich selbst an.
Auch hier wird der Unterausdruck \ w + ([.-]? \ w +) * verwendet, um den E-Mail-Domänennamen mit dem gleichen Muster wie der oben beschriebene Benutzername abzugleichen.
Der Unterausdruck. \ w {2,3} stimmt mit a überein. gefolgt von zwei oder drei Wortzeichen, z. B. ".com", ".edu", ".us", ".uk", ".co".
(. \ w {2,3}) + gibt an, dass der obige Unterausdruck ein- oder mehrmals vorkommen soll, z. B. ".com", ".co.uk", ".edu.sg "etc.
Hier ist eine Aufschlüsselung des regulären Ausdrucks Stück für Stück:
/^
= & gt; Anfang einer Zeile
\w+
= & gt; Jedes Wort (Buchstaben, Zahlen und Unterstriche) wird ein oder mehrmals wiederholt
([\.-]?\w+)*
= & gt; eine Gruppe von [ein optionaler Punkt (.) oder Bindestrich (-) gefolgt von einem Wort, das ein oder mehrere Male wiederholt wird] , das 0 oder mehr Male wiederholt werden kann
@\w+
= & gt; ein at-Symbol (@) gefolgt von einem Wort, das ein oder mehrere Male wiederholt wird
([\.-]?\w+)*
= & gt; eine Gruppe von [ein optionaler Punkt oder Bindestrich gefolgt von einem Wort, das mindestens 1 Mal wiederholt wurde] , das 0 oder mehr Male wiederholt werden kann
(\.\w{2,3})+
= & gt; eine Gruppe von [eine Periode gefolgt von einem Wort, das wiederholt werden kann 2-3 mal] das 1 oder mehrmals wiederholt werden kann
$/
= & gt; das Ende einer Zeile
Übrigens, hier ist eine wirklich gute Einführung in reguläre Ausdrücke verfügbar auf Codular .
Versuchen Sie es
E-mail: <input type="email" name="usremail">
Es hat für mich funktioniert
hier gehst du. ein Visualizer für Regex
Regex Visualizer und A JS Fiddle
Regex erklärt
Mit dieser kleinen Schönheit können Sie eine oder mehrere E-Mail-Adressen in einer Zeichenfolge eingeben, die mit einem Komma oder Semikolon enden, gefolgt von einem optionalen Leerzeichen. :)
Dieser Validierungscode ist FALSCH für E-Mail-Adressen. Insbesondere sind Adressen des Formulars [email protected] nicht erlaubt. Dies ist ein weit verbreiteter Fehler, der auf vielen kommerziellen Websites gefunden wurde (aber nicht Stackoverflow - Glückwunsch!).
Tags und Links javascript regex email-validation