Żeby sprawdzić poprawność adresu email, wcale nie trzeba męczyć się ze skomplikowanymi wyrażeniami regularnymi. W C# walidacja maila jest prosta – z pomocą przychodzi klasa MailAddress
. Oczywiście jest to rozwiązanie wysokopoziomowe i wolne (rzuca wyjątki). Zapewnia jednak czytelność kodu.
Przykład (zaczerpnięty ze StackOverflow):
bool IsValid(string emailaddress) { try { MailAddress m = new MailAddress(emailaddress); Console.WriteLine("TRUE" + "\t" + emailaddress); return true; } catch { Console.WriteLine("FALSE" + "\t" + emailaddress); return false; } }
Testy – walidacja maila:
IsValid("ok@ok.pl");
IsValid("dolores.ryba@poczta-n.pl");
IsValid("dolores.ryba@poczta.odlotowa.pl");
IsValid("dolores.ryba@a.b.c.d.pl");
IsValid("psikus@dot.dot.dot..pl");
IsValid("@");
IsValid("");
IsValid(null);
IsValid("bad@");
IsValid("@wolf");
IsValid("@poczta.pl");
IsValid("cokolwiek");
Wynik:
TRUE ok@ok.pl
TRUE dolores.ryba@poczta-n.pl
TRUE dolores.ryba@poczta.odlotowa.pl
TRUE dolores.ryba@a.b.c.d.pl
TRUE psikus@dot.dot.dot..pl //poprawny mail? Kwestia dyskusyjna
FALSE @
FALSE
FALSE
FALSE bad@
FALSE @wolf
FALSE @poczta.pl
FALSE cokolwiek