w3resource
JavaScript Exercises

JavaScript: Check whether the pattern of an e-mail address matches a specific format

JavaScript validation with regular expression: Exercise-3 with Solution

Write a pattern that matches e-mail addresses.

The personal information part contains the following ASCII characters.

  • Uppercase (A-Z) and lowercase (a-z) English letters.
  • Digits (0-9).
  • Characters ! # $ % & ' * + - / = ? ^ _ ` { | } ~
  • Character .( period, dot or fullstop) provided that it is not the first or last character and it will not come one after the other.
  • Sample Solution: 1

    HTML Code:

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset=utf-8 />
    <title>JavaScript Regular expression to valid an email address</title>
    </head>
    <body>
    </body>
    </html>
    
    

    JavaScript Code:

    function valid_email(str)
    {
    var mailformat = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/;  
    if(mailformat.test(str))
    {  
    console.log("Valid email address!");  
    }  
    else  
    {  
    console.log("You have entered an invalid email address!");  
    }
    }
    
    valid_email('[email protected]');
    
    

    Sample Output:

    Valid email address!
    

    Flowchart:

    Flowchart: JavaScript- Check whether the pattern of an e-mail address matches a specific format

    Sample Solution:- 2

    HTML Code:

    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <title>JavaScript function to check whether a given value is an valid email or not</title>
    </head>
    <body>
    
    </body>
    </html>
    
    

    JavaScript Code:

    function is_email(str)
    {
     // Scott Gonzalez: Email address validation
      
      regexp = /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i;
      
            if (regexp.test(str))
            {
              return true;
            }
            else
            {
              return false;
            }
    }
    
    console.log(is_email("[email protected]"));
    console.log(is_email("[email protected] "));
    
    

    Live Demo:

    See the Pen javascript-regexp-exercise-3 by w3resource (@w3resource) on CodePen.


    Improve this sample solution and post your code through Disqus

    Previous: Write a JavaScript program to check a credit card number ( format 9999-9999-9999-9999 ).
    Next: Write a JavaScript program to search a date within a string.

    What is the difficulty level of this exercise?