Quelles sont les meilleures pratiques pour la validation des adresses e-mail dans Swift?
Je suis à la recherche de la plus simple et la plus propre méthode de validation d'e-mail (String) en Swift. En Objective-C, j'ai utilisé cette méthode, mais si je le réécrire Swift, j'obtiens une erreur "Impossible d'analyser la chaîne de format' lors de la création de prédicat.
- (BOOL) validateEmail: (NSString *) candidate {
NSString *emailRegex = @"[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,6}";
NSPredicate *emailTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", emailRegex];
return [emailTest evaluateWithObject:candidate];
}
Merci de toujours poster votre code qui ne fonctionne pas.
OriginalL'auteur animal_chin | 2014-10-03
Vous devez vous connecter pour publier un commentaire.
Semble assez simple. Si vous rencontrez des problèmes avec votre conversion rapide, si peut-être intéressant de voir ce que vous avez réellement essayé.
Cela fonctionne pour moi:
Droit - qui ne fonctionne pas parce que vous n'avez pas de n'importe quel format des arguments à l'
NSPredicate
initialiseur. Vous devez toujours utiliser%@
et de le transmettre via le varargs liste à la fin.merci! Je comprends maintenant - j'ai juste besoin de regarder à l'initialisation de la fonction de NSPredicate un peu plus 🙂
Pas de problème, heureux de vous aider.
Votre regex ne pas considérer que les caractères comme !#$%&'*+/=?^_`{|}~ sont autorisés et les adresses doivent pas contenir . en tant que premier / dernier caractère.
OriginalL'auteur Craig Otis
Swift version 3.0
OriginalL'auteur Jordi Bruin
OriginalL'auteur Darkngs
Ici est l'extension qui est de travail pour chaque domaine de messagerie.
Ex.:
.com
,.co.uk
,.co.in
, etc.OriginalL'auteur Sohil R. Memon
Juste va se jeter dans mes deux centimes d'ici et de vous frapper avec une courbe-ball:
Voulez-vous vraiment à valider votre adresse de courriel comme ça?
Voir ce article sur le blog qui suggère tout ce que vous devez faire pour vérifier un email est valide, vérifier qu'il a une
@
symbole, ou tout au plus un@
suivi à un moment donné par un.
:/.+@.+\..+/i
OriginalL'auteur Matthew Hallatt
OriginalL'auteur Himanshu Mahajan
Craigs réponse fonctionne et si quelqu'un est en difficulté à la mettre en œuvre, ici, il est avec le textFieldDidEndEditing func en l'appelant. (UITextFieldDelegate nécessaire)
OriginalL'auteur timv
Swift 4 réglez simplement:
ajouter
Dans le viewDidLoad:
Utilisation:
OriginalL'auteur Fabio
OriginalL'auteur Raish Khan