Best Practices für die Validierung von E-Mail-Adressen (einschließlich der + in Google Mail-Adressen)

8

Ich weiß, dass es hier eine Menge Fragen zu E-Mail-Validierung und spezifischen RegEx gibt. Ich würde gerne wissen, welche Best Practices für die Validierung von E-Mails in Bezug auf den [email protected] Trick gelten ( Details hier ). Meine aktuelle RegExp für JavaScript-Validierung ist wie folgt, aber es unterstützt nicht die zusätzliche + im Handle:

%Vor%

Gibt es noch andere Dienste, die die zusätzliche + unterstützen? Soll ich eine + in der Adresse erlauben oder sollte ich die RegEx ändern, um sie nur für eine E-Mail mit gmail.com oder googlemail.com als Domain zuzulassen? Wenn ja, was wäre die geänderte RegEx?

UPDATE: Danke an alle für den Hinweis, dass + laut Spezifikation gültig ist. Ich wusste das nicht und tue es jetzt für die Zukunft. Für diejenigen von euch, die sagen, dass es schlecht ist, sogar ein RegEx zu verwenden, um es zu validieren, basiert mein Grund vollständig auf einem kreativen Design, zu dem ich baue. Das Design unseres Kunden platziert einen grünen Haken oder ein rotes X neben der eingegebenen E-Mail-Adresse. Dieses Symbol gibt an, ob es eine gültige E-Mail-Adresse ist oder nicht. Daher muss ich JS verwenden, um es zu validieren.

    
Mark Ursino 09.12.2009, 14:00
quelle

5 Antworten

11

+ ist ein gültiger Charakter in einer E-Mail-Adresse. Es spielt keine Rolle, ob die Domain nicht gmail.com oder googlemail.com ist

Regexes sind eigentlich keine sehr gute Möglichkeit, E-Mails zu validieren, aber wenn Sie nur Ihre Regex ändern wollen, um mit dem Plus umzugehen, ändern Sie es in folgendes:

%Vor%

Als Beispiel, wie diese Regex nicht gegen die Spezifikation validiert: Die Email [email protected] ist entsprechend gültig.

    
Ben S 09.12.2009, 14:04
quelle
5

Wenn Sie E-Mails über regexp validieren müssen, lesen Sie den Standard oder mindestens < a href="http://www.regular-expressions.info/email.html"> Dieser Artikel .

Der Standard schlägt vor, diese Regexp zu verwenden:

%Vor%

Wenn Sie das nicht erschreckt, sollte es:)

    
Aaron Digulla 09.12.2009 14:09
quelle
3

Ich würde dazu neigen, etwas nach dem Muster von /.+@.+\..+/ zu nehmen, um nach einfachen Fehlern zu suchen. Dann würde ich eine E-Mail an die Adresse senden, um zu überprüfen, ob sie tatsächlich existiert, da die meisten Tippfehler immer noch zu syntaktisch gültigen E-Mail-Adressen führen.

    
tloach 09.12.2009 14:11
quelle
2

Die Spezifikationen erlauben einige wirklich verrückte hässliche E-Mail-Adressen. Ich bin oft sehr verärgert über Websites, die sich sogar über völlig normale, gültige E-Mail-Adressen beschweren. Bitte versuchen Sie daher nicht, gültige E-Mail-Adressen abzulehnen. Es ist besser, einige illegale Adressen zu akzeptieren als legale abzulehnen.

Wie andere vorgeschlagen haben, verwende ich einen einfachen Regexp wie /.+@.+/ und sende dann eine Bestätigungs-E-Mail. Wenn es wichtig genug ist, um zu validieren, ist es wichtig genug zu überprüfen, da eine legale E-Mail-Adresse immer noch jemand anderem als Ihrem Besucher gehören kann. Oder einen unbeabsichtigten, aber tödlichen Tippfehler enthalten.

* Bearbeiten: Der Punkt wurde aus dem Domain-Teil der Regex entfernt, da a@to immer noch eine gültige E-Mail-Adresse ist. Also hat auch meine super vereinfachte Validierung gültige Adressen abgelehnt. Gibt es überhaupt einen Nachteil darin, alles zu akzeptieren, was ein @ mit etwas davor und dahinter enthält?

    
mcv 09.12.2009 14:38
quelle
1
Moshe 01.07.2010 07:46
quelle