Gibt es eine Java-Implementierung der HTML5-Eingabe-E-Mail-Validierung?

8

Ich möchte das neue Element <input type="email" /> verwenden. Ich hätte gerne Java-Code, der die gleiche Validierung auf dem Server im Browser implementiert.

Die HTML5-Spezifikation definiert E-Mail-Adressen in ABNF als:

%Vor%

wo :

%Vor%

und :

%Vor%

Dies sind nicht dieselben Regeln wie in RFC 5322 . Wie kann ich testen, ob eine Adresse diesen Regeln in Java entspricht?

Danke!

    
Adam 09.02.2011, 00:21
quelle

2 Antworten

6

Sie können eine Regex verwenden:

%Vor%     
SLaks 09.02.2011, 00:26
quelle
1

Die W3C-Empfehlung, die Sie zitiert haben bietet eine Regex als Entsprechung für das, was sie als ABNF darstellen, die eine gültige E-Mail-Adresse definiert:

%Vor%

Dieser Regex stimmt jedoch mit ungültigen E-Mail-Adressen überein, z. B. ".any.address. @ 123" (getestet mit Ссылка ).

Diese Regex akzeptiert (alle ungültig in einer E-Mail-Adresse, nach Wikipedia ):

  • "" (Punkt) am Anfang des lokalen Teils
  • "" (Punkt) am Ende des lokalen Teils
  • mehrere aufeinanderfolgende "." (Punkt) im lokalen Teil
  • nur Zahlen im Domain-Teil

und lehnt ab (gültig nach Wikipedia):

  • Unicode-Zeichen
  • einige Sonderzeichen mit Anführungszeichen ( " )

Beachten Sie, dass W3C angibt, dass die Spezifikation, die sie präsentieren, eine vorsätzliche Verletzung ist RFC 5322 , also haben sie eine "Entschuldigung", um die gültigen Fälle zu verlassen, aber IMHO ist es nicht ein Grund, ungültige Adressen zu akzeptieren.

Wenn Sie sich nicht mit diesen Ausnahmefällen befassen, können Sie die von W3C vorgeschlagene Regex verwenden. Andernfalls sollten Sie die Regex bearbeiten, um die Fälle abzudecken, die Sie behandeln möchten.

    
Alexandre 12.03.2015 23:27
quelle