Last active
September 25, 2020 08:51
-
-
Save darthpelo/dfe3c460585f4f035c24ede994faeb80 to your computer and use it in GitHub Desktop.
This regular expression is adapted from a version at regular-expressions.info and is a complete verification of RFC 2822. Source: http://www.cocoawithlove.com/2009/06/verifying-that-string-is-email-address.html. Dedicate article: https://medium.com/@darthpelo/email-validation-in-swift-3-0-acfebe4d879a
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/// Validate email string | |
/// | |
/// - parameter email: A String that rappresent an email address | |
/// | |
/// - returns: A Boolean value indicating whether an email is valid. | |
func isValid(_ email: String) -> Bool { | |
let emailRegEx = "(?:[a-zA-Z0-9!#$%\\&‘*+/=?\\^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%\\&'*+/=?\\^_`{|}” + | |
“~-]+)*|\“(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\” + | |
“x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\“)@(?:(?:[a-z0-9](?:[a-” + | |
“z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5" + | |
“]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-” + | |
“9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21" + | |
“-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])" | |
let emailTest = NSPredicate(format:"SELF MATCHES[c] %@", emailRegEx) | |
return emailTest.evaluate(with: email) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@sendoa and @DanielStormApps thanks and sorry for the delay! My bad!