Validation of email in swift iOS application
Swift 4.2 and Xcode 10
For me, other answers were returning true if there are more then two dots after the domain name. I found this answer where it handles that condition properly.
func isValidEmail(testStr:String) -> Bool {
let emailRegEx = "^[\\w\\.-]+@([\\w\\-]+\\.)+[A-Z]{1,4}$"
let emailTest = NSPredicate(format:"SELF MATCHES[c] %@", emailRegEx)
return emailTest.evaluate(with: testStr)
}
Happy Coding ð
You can validate email using a simple regex function which returns true
if it's valid otherwise false
You can validate it when user hits Done/Enter on keyboard event, such as editingDidEnd
. You can bind it from storyboard to class file like,
@IBAction func onPressDone(sender: UITextField){
if txtEmaildAddress.text.isEmpty {
println("enter email address") //prompt ALert or toast
}
else if self.validate(txtEmaildAddress.text) {
println("Invalid email address") // prompt alert for invalid email
}
}
func validate(YourEMailAddress: String) -> Bool {
let REGEX: String
REGEX = "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,6}"
return NSPredicate(format: "SELF MATCHES %@", REGEX).evaluateWithObject(YourEMailAddress)
}
May help this method to validate easily.
HTH, Enjoy Coding !!