Un bon début est de décider ce que vous voulez et ne voulez pas accepter comme adresse électronique.
99 % des adresses électroniques ressemblent à ceci : bob.smith@foo.com ou fred@bla.edu.
Cependant, il est techniquement légal d'avoir une adresse électronique comme celle-ci : f !#$%&'*+-/=?^_
{|}~ "ha !"@com
Il n'y a probablement qu'une poignée de courriels valides dans le monde pour les domaines de premier niveau, et presque personne n'utilise la plupart de ces autres caractères (en particulier les guillemets et les backticks), donc vous pourriez vouloir supposer que ce sont toutes des choses invalides à faire. Mais vous devez le faire de manière consciente.
Au-delà, faites ce que Paul dit et essayez de faire correspondre l'entrée à une expression régulière comme celle-ci : ^[A-Z0-9._%+-]+@[A-Z0-9.-]+.[A-Z]{2,}$
Celle-ci correspondra à peu près à l'adresse électronique de tout le monde.
0 votes
Je suis à la recherche d'une solution de cacao. Je comprends la validité des emails et les règles autour de la validation des emails. Cependant, comme RegEx n'est pas facilement accessible sur Cocoa Touch, je cherche une solution Cocoa Touch pour la validation. Pas une liste des règles autour de la validation.
0 votes
Jusqu'à présent, la meilleure suggestion de code que j'ai trouvée consiste à utiliser RegExKitLite et les expressions régulières. Heureusement, c'est moins pénible qu'il n'y paraît.
0 votes
Voir les commentaires ci-dessous sur l'utilisation de NSRegularExpression pour les applications ne supportant pas os < 4.0.
0 votes
Notez que cette question a été posée en 2009 alors qu'il n'y avait pas de NSRegularExpression sur l'iPhone.
0 votes
Les personnes utilisant iOS 3.0 peuvent utiliser
NSPredicate
; les personnes utilisant iOS 4.0 peuvent utiliserNSRegularExpression
.1 votes
Puisque cela semble être la question canonique concernant la validation de l'adresse électronique, il est logique de mettre à jour avec des réponses améliorées au fur et à mesure que iOS mûrit. Dans cette optique, j'ai ajouté une réponse qui utilise la fonction de validation des adresses e-mail d'iOS.
NSDataDetector
pour valider les adresses électroniques : stackoverflow.com/a/23547905/2575500 votes
C'est la question canonique pour iOS 2.
NSDataDetector
n'existait pas dans iOS 2.2 votes
Cette question semble être hors sujet car elle concerne iOS 2.0, qui a été abandonné il y a des années.