Email address Validation in Swift with example

This program checks how to validate the email address.

Dart provides a RegExp class for matching strings with regular expression

Following are the rules for a valid email address.

  • Email has different valid parts - sender name, @ symbol, and domain name
  • recipient and domain names may contain lower and upper case numbers
  • domain name contains an extension separated by a dot(.)
  • special characters are allowed in the sender’s name
  • sender name length is 64 characters
  • domain name is 256 characters

Swift Email validation example

The below example shows a isEmail method to a String extension, and it works in Swift 3 to 5 version.

  • Create a Regular expression pattern for email and pass it to NSRegularExpression. You can check email regex from online tools.
  • Check a given String is a valid email using firstMatch() method
  • extension function returns true for valid email, else returns false.
  • Finally, call the String function using string.isEmail syntax. Here is an example.
import Foundation
let str = "[email protected]"
if(str.isEmail) {
             print("\(str) is a valid e-mail")
} else {
    print("\(str) is not a valid e-mail")


extension String {
    //Validate Email
    var isEmail: Bool {
        do {
            let regex = try NSRegularExpression(pattern: "[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}", options: .caseInsensitive)
            return regex.firstMatch(in: self, options: NSRegularExpression.MatchingOptions(rawValue: 0), range: NSMakeRange(0, self.count)) != nil
        } catch {
            return false

You can also write a utility function to check the given email validation logic.