Validare email in Swift

Mattepuffo's logo
Validare email in Swift

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!


Condividi

Commentami!