Validare email in Swift
Ieri abbiamo visto come validare una email in Java; oggi vediamo come fare la stessa con in Swift.
Utilizzeremo NSPredicate per validare la regex.
Ecco il codice:
import Foundation
func isEmailValid(_ email: String) -> Bool {
let regex = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,64}";
let predicate = NSPredicate(format: "SELF MATCHES %@", regex);
return predicate.evaluate(with: email);
}
print(isEmailValid("test@test.it"));
print(isEmailValid("test@test.i"));
print(isEmailValid("testtest.it"));
print(isEmailValid("@test.it"));
Come potete notare l'espressione regolare è differente da quella che abbiamo usato ieri.
Ed infatti il secondo test da false (ed è corretto che sia false).
Mettiamole a confronto:
1) ^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^-]+(?:.[a-zA-Z0-9_!#$%&'*+/=?`{|}~^-]+)*@[a-zA-Z0-9-]+(?:.[a-zA-Z0-9-]+)*$
2) [A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,64}
Sarebbe interessante fare un test incrociato....
Enjoy!
swift nspredicate regex
Commentami!