Réponses
Trop de publicités?Bonne fonction de cacao :
Discussion sur Lax vs Strict - http://blog.logichigh.com/2010/09/02/validating-an-e-mail-address/
Pour vérifier si une variable chaîne de caractères contient une adresse de courriel valide, le plus simple est de tester avec une expression régulière. Il y a une bonne discussion de divers regex et leurs compromis à regular-expressions.info.
Ici est relativement simple, qui se penche sur le côté de permettre à certaines adresses non valides par le biais de: ^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}$
Comment vous pouvez utiliser des expressions régulières dépend de la version d'iOS que vous utilisez.
iOS 4.x et versions Ultérieures
Vous pouvez utiliser NSRegularExpression
, ce qui vous permet de compiler et de tester une expression régulière directement.
iOS 3.x
Ne comprend pas l' NSRegularExpression
classe, mais ne comprennent NSPredicate
, ce qui peut correspondre à l'encontre des expressions régulières.
NSString *emailRegex = ...;
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
BOOL isValid = [emailTest evaluateWithObject:checkString];
Lire l'intégralité d'un article au sujet de cette approche à cocoawithlove.com.
iOS 2.x
Ne comprennent pas toute l'expression régulière correspondant dans le Cacao bibliothèques. Cependant, vous pouvez facilement inclure RegexKit Lite dans votre projet, qui vous donne accès au niveau C regex Api inclus sur iOS 2.0.
pour valider l'e-mail de chaîne, vous devez écrire une expression régulière pour vérifier qu'il est dans la forme correcte. il y en a beaucoup sur le web, mais être prudent que certains peuvent exclure ce que sont réellement les adresses juridiques.
essentiellement, il va ressembler à quelque chose comme ceci
^((?>[a-zA-Z\d!#$%&'*+\-/=?^_`{|}~]+\x20*|"((?=[\x01-\x7f])[^"\\]|\\[\x01-\x7f])*"\x20*)*(?<angle><))?((?!\.)(?>\.?[a-zA-Z\d!#$%&'*+\-/=?^_`{|}~]+)+|"((?=[\x01-\x7f])[^"\\]|\\[\x01-\x7f])*")@(((?!-)[a-zA-Z\d\-]+(?<!-)\.)+[a-zA-Z]{2,}|\[(((?(?<!\[)\.)(25[0-5]|2[0-4]\d|[01]?\d?\d)){4}|[a-zA-Z\d\-]*[a-zA-Z\d]:((?=[\x01-\x7f])[^\\\[\]]|\\[\x01-\x7f])+)\])(?(angle)>)$
En fait de vérifier si l'email existe et ne rebondit pas signifierait l'envoi d'un e-mail et de voir ce que le résultat a été. c'est à dire il a rebondi ou il n'a pas. Cependant, il peut ne pas rebondir pendant plusieurs heures ou pas du tout, et encore de ne pas être une "vraie" adresse e-mail. Il y a un certain nombre de services là-bas qui prétendent le faire pour vous et serait probablement payés par vous, et franchement, pourquoi s'embêter à voir si c'est réel?
Il est bon de vérifier que l'utilisateur n'a pas commis leur e-mail d'autre ils pourraient entrer de manière incorrecte, pas de la réaliser, puis piraté de avec vous de ne pas répondre. Cependant, si quelqu'un veut ajouter un clochard adresse email il n'y aurait rien pour les arrêter création sur hotmail ou yahoo (ou de nombreux autres endroits) pour obtenir la même fin.
Les expression régulière et valider la structure, mais oublier de valider à l'encontre d'un service.