Ein guter Anfang ist zu entscheiden, was Sie als E-Mail-Adresse akzeptieren möchten und was nicht.
99% der E-Mail-Adressen sehen so aus: bob.smith@foo.com oder fred@bla.edu
Es ist jedoch technisch legal, eine E-Mail-Adresse wie diese zu haben: f!#$%&'*+-/=?^_
{|}~"ha!"@com
Es gibt wahrscheinlich nur eine Handvoll gültiger E-Mails in der Welt für Top-Level-Domains, und fast niemand verwendet die meisten dieser anderen Zeichen (insbesondere Anführungszeichen und Backticks), daher möchten Sie vielleicht davon ausgehen, dass dies alles ungültige Aktionen sind. Aber Sie sollten dies als bewusste Entscheidung tun.
Darüber hinaus sollten Sie tun, was Paul sagt, und versuchen, die Eingabe mit einem regulären Ausdruck wie diesem abzugleichen: ^[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,}$
Dieser wird wahrscheinlich mit fast jeder E-Mail-Adresse übereinstimmen.
0 Stimmen
Ich suche nach einer Kakao-Lösung. Ich verstehe die Gültigkeit von E-Mails und die Regeln für die Validierung von E-Mails. Da RegEx jedoch auf Cocoa Touch nicht einfach zugänglich ist, suche ich nach einer Cocoa Touch-Lösung zur Validierung. Nicht eine Liste der Regeln zur Validierung.
0 Stimmen
Bisher ist der beste Code-Vorschlag, den ich gefunden habe, die Verwendung von RegExKitLite und regulären Ausdrücken. Glücklicherweise ist es weniger schmerzhaft als es klingt.
0 Stimmen
Siehe Kommentare unten zur Verwendung von NSRegularExpression für Apps, die kein Betriebssystem unter 4.0 unterstützen.
0 Stimmen
Bitte beachten Sie, dass dies im Jahr 2009 gefragt wurde, als es kein NSRegularExpression auf dem iPhone gab.
0 Stimmen
Menschen, die iOS 3.0 verwenden, können
NSPredicate
verwenden; Menschen, die iOS 4.0 verwenden, könnenNSRegularExpression
verwenden.1 Stimmen
Da dies die kanonische Frage zur Validierung von E-Mail-Adressen zu sein scheint, macht es Sinn, sie mit verbesserten Antworten zu aktualisieren, während iOS reift. In diesem Sinne habe ich eine Antwort hinzugefügt, die iOS's
NSDataDetector
verwendet, um E-Mail-Adressen zu validieren: stackoverflow.com/a/23547905/2575500 Stimmen
Dies ist die kanonische Frage für iOS 2.
NSDataDetector
existierte nicht in iOS 2.2 Stimmen
Diese Frage scheint nicht zum Thema zu passen, da sie sich auf iOS 2.0 bezieht, das vor vielen Jahren veraltet wurde.