Emailadresse kontrollieren?

Status
Nicht offen für weitere Antworten.
G

Guest

Gast
Hallo,

ich habe hier ein Textfeld.
In diesem Textfeld soll der Benutzer seine Emailadresse eintragen.

Jetzt möchte ich überprüfen, ob der Benutzer wirklich eine Emailadresse eingetragen hat.

Ich weiß das eine Emailadresse aus 5 Teilen besteht.

Der Adressenname
Das @ Zeichen
Der Provider
Der Punkt
Und dann die Domain (de,com) etc

Wie kann ich am besten überprüfen ob die Emailadresse aus den Teilen besteht?
Oder gibt es eine fertige Methode um eine Emailadresse zu kontrollieren?

Gruß
 

Duster

Aktives Mitglied
Also ich würde dir raten mit Pattern und Matcher zu arbeiten.

Bau dir am besten eine Regulären Ausdruck zusammen, mit dem du nach E-Mail adressen suchst, und wende diesen dann zur Prüfung an.
 
G

Guest

Gast
Duster hat gesagt.:
Also ich würde dir raten mit Pattern und Matcher zu arbeiten.

Bau dir am besten eine Regulären Ausdruck zusammen, mit dem du nach E-Mail adressen suchst, und wende diesen dann zur Prüfung an.

Hi, Kannst du vielelicht ein kleines Beispiel geben?

Bin auf dem Gebiet anfänger.

Gruß
 
B

bygones

Gast
email find ich witzig....

wenn man nach dem RFC 2822 Standard geht saehe der regex so aus (siehe www.regular-expressions.info/email.html )
Code:
(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\x01-\x08\x0b\x0c\x0e-\x1f\x21\x23-\x5b\x5d-\x7f]|\\
[\x01-\x09\x0b\x0c\x0e-\x7f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:
(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[
\x01-\x08\x0b\x0c\x0e-\x1f\x21-\x5a\x53-\x7f]|\\[\x01-\x09\x0b\x0c\x0e-\x7f])+)\])
umbrueche habe ich der uebersicht reingemacht ;-)

man muss es aber nicht uebertreiben ;-)
 

Duster

Aktives Mitglied
Also ich habe mir mal eine Methode geschrieben zum prüfen der E-Mail-Adresse.

Den Regulären Ausdruck habe ich übrigens von hier .


Code:
    private boolean isEMail(String text){
        Pattern regex = Pattern.compile("\\b[A-Z0-9._%-]+@[A-Z0-9.-]+\\." +
            "[A-Z]{2,4}\\b", Pattern.CASE_INSENSITIVE);
        Matcher m = regex.matcher(text);
        
        while (m.find()){
            return true;
        }
        return false;
    }
 
G

Guest

Gast
Duster hat gesagt.:
Also ich habe mir mal eine Methode geschrieben zum prüfen der E-Mail-Adresse.

Den Regulären Ausdruck habe ich übrigens von hier .


Code:
    private boolean isEMail(String text){
        Pattern regex = Pattern.compile("\\b[A-Z0-9._%-]+@[A-Z0-9.-]+\\." +
            "[A-Z]{2,4}\\b", Pattern.CASE_INSENSITIVE);
        Matcher m = regex.matcher(text);
        
        while (m.find()){
            return true;
        }
        return false;
    }

Danke, funktioniert eins A

Gruß
 
B

bygones

Gast
nur so am Rande
Code:
while (m.find()){
            return true;
        }
        return false;
ist eigentlich unnuetz... warum ein while, wenn du gleich einen return lieferst...

kuerzer
Code:
return m.find();
 

HoaX

Top Contributor
Anonymous hat gesagt.:
Duster hat gesagt.:
Also ich habe mir mal eine Methode geschrieben zum prüfen der E-Mail-Adresse.

Den Regulären Ausdruck habe ich übrigens von hier .


Code:
    private boolean isEMail(String text){
        Pattern regex = Pattern.compile("\\b[A-Z0-9._%-]+@[A-Z0-9.-]+\\." +
            "[A-Z]{2,4}\\b", Pattern.CASE_INSENSITIVE);
        Matcher m = regex.matcher(text);
        
        while (m.find()){
            return true;
        }
        return false;
    }

Danke, funktioniert eins A

Gruß

naja, ich sehe das anders. "hoax" am selben host ist auch gültig, oder "hoax@localhost", und alle emails mit einer tld länger als 4 (.museum, .travel, ...) sind in wirklichkeit auch gültig. ich würde so eine validierung einfach lassen, höchstens schauen ob ein @ enthalten ist und keine sonderzeichen. erstgenannter fall von mir tritt eh nie auf, und wenn doch, dann ist der benutzer weise genug um dann halt mit @ einzutippen ...
 

AlArenal

Top Contributor
Sehe das ähnlich wie HoaX, zusätzlich noch prüfen, ob es die Domain gibt und gut iss. Wer ganz genau ist, schaut ob die Domain MXer eingetragen und prüft der Reihe nach der Priorität aufsteigend ob die MXer aufm SMTP Port lauschen und zum Schluss prüft man das für den A Record.

Aber das ist was für die ganz peniblen ;)
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben