Email Validation Regex in Multiple Programming Languages

Introduction

Email validation is a common operation in web and software development. Using regular expressions (Regex) is a quick and effective way to check if an email address has a correct syntax. However, writing a reliable Regex that covers all cases can be tricky. In this guide, we will explore email validation with Regex in different programming languages, focusing on optimized patterns that handle most common scenarios. We’ll also highlight potential pitfalls and show you how to avoid them, ensuring that your validation process is accurate and secure


1. Email Validation with Regex in Python

Python offers the re module to work with regular expressions.

import re

def is_valid_email(email):
    pattern = r"^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$"
    return re.match(pattern, email) is not None

# Usage example
emails = ["test@example.com", "invalid-email@com", "user.name@domain.co.uk"]
for email in emails:
    print(f"{email}: {'Valid' if is_valid_email(email) else 'Invalid'}")

2. Email Validation with Regex in JavaScript

In JavaScript, we can use RegExp and the test method to validate an email.

function isValidEmail(email) {
    const pattern = /^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/;
    return pattern.test(email);
}

// Usage example
const emails = ["test@example.com", "invalid-email@com", "user.name@domain.co.uk"];
emails.forEach(email => {
    console.log(`${email}: ${isValidEmail(email) ? 'Valid' : 'Invalid'}`);
});

3. Email Validation with Regex in TypeScript

In TypeScript, we can use RegExp with typing to validate an email.

function isValidEmail(email: string): boolean {
    const pattern = /^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$/;
    return pattern.test(email);
}

// Usage example
const emails: string[] = ["test@example.com", "invalid-email@com", "user.name@domain.co.uk"];
emails.forEach(email => {
    console.log(`${email}: ${isValidEmail(email) ? 'Valid' : 'Invalid'}`);
});

4. Email Validation in Java

Java provides the Pattern class to work with regular expressions.

Create a file EmailValidator.java and insert the following code:

import java.util.regex.*;

public class EmailValidator {
    public static boolean isValidEmail(String email) {
        String pattern = "^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+$";
        return Pattern.compile(pattern).matcher(email).matches();
    }
    
    public static void main(String[] args) {
        String[] emails = {"test@example.com", "invalid-email@com", "user.name@domain.co.uk"};
        for (String email : emails) {
            System.out.println(email + ": " + (isValidEmail(email) ? "Valid" : "Invalid"));
        }
    }
}

5. Email Validation in Go

Go uses the regexp package to work with regular expressions.

package main

import (
    "fmt"
    "regexp"
)

func isValidEmail(email string) bool {
    pattern := `^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$`
    re := regexp.MustCompile(pattern)
    return re.MatchString(email)
}

func main() {
    emails := []string{"test@example.com", "invalid-email@com", "user.name@domain.co.uk"}
    for _, email := range emails {
        fmt.Printf("%s: %v\n", email, isValidEmail(email))
    }
}

6. Email Validation with Regex in Rust

Rust uses the regex crate to handle regular expressions.

use regex::Regex;

fn is_valid_email(email: &str) -> bool {
    let pattern = r"^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$";
    let re = Regex::new(pattern).unwrap();
    re.is_match(email)
}

fn main() {
    let emails = ["test@example.com", "invalid-email@com", "user.name@domain.co.uk"];
    for email in emails.iter() {
        println!("{}: {}", email, if is_valid_email(email) { "Valid" } else { "Invalid" });
    }
}

Conclusion

We have seen how to validate an email in different programming languages using Regex. While this method is highly useful for syntactic validation, it has its limitations. Keep in mind that Regex can only check the format of an email, not its existence or accessibility. For critical applications, the only reliable way to ensure an email is valid is through a confirmation email process. This not only verifies the email’s existence but also confirms that the user has access to it. Combining syntactic validation with confirmation emails will give you the best balance between user experience and data accuracy

Additional Resources

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top