Verständnis der E-Mail-Validierung mit JavaScript

7

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.

    
AlwaysALearner 22.02.2013, 04:49
quelle

8 Antworten

13
  1. Die beiden Forward-Slashes /.../ enthalten eine Regexe.

  2. 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.

  3. \ w + entspricht einem oder mehreren Wortzeichen (a-z, A-Z, 0-9 und Unterstrich).

  4. [.-] 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.

  5. [.-]? entspricht 0 oder 1 Vorkommen von [.-].

  6. Wieder entspricht \ w + einem oder mehreren Wortzeichen.

  7. ([.-]? \ w +) * entspricht 0 oder mehr Vorkommen von [.-]? \ w +.

  8. 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".

  9. Das @ passt sich selbst an.

  10. Auch hier wird der Unterausdruck \ w + ([.-]? \ w +) * verwendet, um den E-Mail-Domänennamen mit dem gleichen Muster wie der oben beschriebene Benutzername abzugleichen.

  11. Der Unterausdruck. \ w {2,3} stimmt mit a überein. gefolgt von zwei oder drei Wortzeichen, z. B. ".com", ".edu", ".us", ".uk", ".co".

  12. (. \ w {2,3}) + gibt an, dass der obige Unterausdruck ein- oder mehrmals vorkommen soll, z. B. ".com", ".co.uk", ".edu.sg "etc.

Referenz

    
Siddiqui 22.02.2013, 05:00
quelle
3

Versuchen Sie es hier REGEX

Sie können eine ausführliche Erklärung finden.

    
coder 22.02.2013 04:57
quelle
3

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 .

    
Steven Schobert 22.02.2013 05:11
quelle
3

Versuchen Sie es

E-mail: <input type="email" name="usremail">

Es hat für mich funktioniert

    
speeday125 21.03.2013 12:37
quelle
2

hier gehst du. ein Visualizer für Regex

Regex Visualizer und A JS Fiddle Regex erklärt

    
Ravi Gadag 22.02.2013 04:56
quelle
1
%Vor%

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. :)

    
user2217814 19.05.2013 13:03
quelle
0
%Vor%     
Miqayel 28.03.2015 10:22
quelle
0

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!).

    
Roger Dannenberg 29.03.2016 13:52
quelle