Feedback

C# - String auf Emailadresse prüfen

Veröffentlicht von am 5/18/2006
(1 Bewertungen)
Die Methode prüft mittels Regex ob in dem übergebenen String eine Emailadresse enthalten ist.
private bool IsEmail(string text)
{
return System.Text.RegularExpressions.Regex.IsMatch(text,@"\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*");
}

3 Kommentare zum Snippet

herbivore schrieb am 12/10/2006:
Auf der sehr guten Seite http://www.regular-expressions.info/email.html schlägt der Autor folgenden Regex vor: ^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$
Gregori schrieb am 6/27/2007:
Also dieser Regex in dem Snippet ist sehr anfällig für Falscheingaben. Man muss sagen, dass laut RFC 2821 (http://tools.ietf.org/html/rfc2821) sehr viel möglich ist.

Heutige deutsche Domains erlauben bekanntlich auch Umlaute. Ich denke der Regex von regular-expressions.info ist bereits nicht schlecht. Ich empfehle _allen_ eine Funktion in ihr Programm einzubauen, welches die Kontaktaufnahme mit dem Produzenten ermöglicht, falls die E-Mail Adresse nicht akzeptiert wird! Besonders da es exotische Toplevel-Domains gibt, welche noch weitere Sonderzeichen erlauben =).

Übrigens, mein persönlicher Regex den ich vor langer Zeit geschrieben habe:
^[a-z0-9|ä|ü|ö|\-|\.|_]+@[a-z0-9|ä|ü|ö|\-|\.|_]+\.[a-z]{2,4}$

Achtung: Dieser ist für regex-funktionen / -methoden, welche nicht auf Gross- / Kleinschreibung achten. Aber auch dieser hat noch Fehler drin und könnte locker erweitert werden! So könnte es Probleme geben mit .com.uk und ähnliche Toplevel-Domains.

Gruss,
Gregor
Patrick Semmler schrieb am 8/14/2012:
@Gregori:
Es gibt allerdings E-Mail-Programme und Mailserver, die Umlaute in E-Mail-Adressen nicht akzeptieren.
Beispielsweise wird von Postfix die Adresse
patrick@ist-ärzte-fan.de nicht akzeptiert, wenn ich die Mail mit Thunderbird versende, Fehlermeldung "bad recipient address syntax". Kippe ich die Mail mit Outlook ein, funktioniert es, da die Adresse von Outlook korrekt in punycode umgewandelt wird:
patrick@xn--ist-rzte-fan-jcb.de
Das wäre mal eine Idee für ein anderes Snippet :-)
 

Logge dich ein, um hier zu kommentieren!