JavaScript: Validate an Email Address

1. Introduction

Email validation is a common task in web development. It ensures that users provide a properly formatted email address. For example, registering on a website or subscribing to a newsletter. In this post, we'll discuss how to validate an email address using a regular expression in JavaScript.

2. Program Overview

Our email validation will:

1. Use a regular expression to check the format of the email.

2. Ensure the email has:

- One @ symbol.

- Domain and subdomain names.

- A valid top-level domain (like .com, .org).

3. Code Program

// Function to validate an email
function validateEmail(email) {
    // Regular expression for email validation
    const regex = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
    return regex.test(email);

// Test the function
const email = '[email protected]';
if (validateEmail(email)) {
    console.log(email + ' is a valid email address.');
} else {
    console.log(email + ' is not a valid email address.');


[email protected] is a valid email address.

4. Step By Step Explanation

1. Regular Expression for Email: The regular expression (regex) we use covers the most common email formats. It starts with alphanumeric characters and can include periods, underscores, and hyphens. After the @ symbol, it expects domain names, which can be a combination of alphanumeric characters, periods, and hyphens. Lastly, it expects a top-level domain that ranges from 2 to 4 characters.

2. The validateEmail function:

- Accepts an email string as its parameter.

- Tests the email against our regex using the .test() method.

- Returns true if the email matches the pattern, otherwise false.

3. Testing the Function: We provide a sample email address and call our function. Based on the function's output, we log a message indicating whether the email is valid or not.

This approach will handle a majority of valid email formats, but keep in mind that the world of email addresses is complex, and there are edge cases this might not cover. However, for most web applications, this method provides a robust and simple solution.