How to use email validation in Java script.Like User can't enter invalid email address?

Questions by mrbaliram   answers by mrbaliram

Editorial / Best Answer

bicu  

  • Member Since Sep-2005 | Feb 2nd, 2006


First of all, here is the javascript function that tests if an email address is valid.
It checks for a lot of things: to see if the email contains a "@" sign and a dot, checks to see if the @ is before the dot, and so on.

<script>
function isMail(str)
{
   var at="@";
   var dot=".";
   var lat=str.indexOf(at);
   var lstr=str.length;
   var ldot=str.indexOf(dot);
   if (str.indexOf(at)==-1) return false;
   if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr) return false;
   if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr) return false;
   if (str.indexOf(at,(lat+1))!=-1) return false; if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot) return false;
   if (str.indexOf(dot,(lat+2))==-1) return false;
   if (str.indexOf(" ")!=-1) return false;
   return true;
}

// the next function will be used to validate the form. I made this as a separate function because you might want to validate more fields.
function validate_form()
{
   if (!isMail(document.form1.mail.value))
   {
      alert("Please enter a valid email address");
      document.form1.mail.focus();
      return false;
   }
   // if the value entered is not a valid email address, 
   // we show a message, focus on the field and return false.
   // returning false will make sure the form is not submitted

   // if we got here, it means the email address is valid
   return true;
   // return true means that the form is submitted.
}

</script>

After placing this function in the code, here is what you need to put in the form.

Let's say the form only has the email address and a submit button.

<form action="/" method="post" onsubmit="return validate_form()" name="form1">
<input type="text" name="email" value="">
<input type="submit" name="submit_button" value="continue">
</form>

Showing Answers 1 - 7 of 7 Answers

First of all, here is the javascript function that tests if an email address is valid.
It checks for a lot of things: to see if the email contains a "@" sign and a dot, checks to see if the @ is before the dot, and so on.

<script>
function isMail(str)
{
   var at="@";
   var dot=".";
   var lat=str.indexOf(at);
   var lstr=str.length;
   var ldot=str.indexOf(dot);
   if (str.indexOf(at)==-1) return false;
   if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr) return false;
   if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr) return false;
   if (str.indexOf(at,(lat+1))!=-1) return false; if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot) return false;
   if (str.indexOf(dot,(lat+2))==-1) return false;
   if (str.indexOf(" ")!=-1) return false;
   return true;
}

// the next function will be used to validate the form. I made this as a separate function because you might want to validate more fields.
function validate_form()
{
   if (!isMail(document.form1.mail.value))
   {
      alert("Please enter a valid email address");
      document.form1.mail.focus();
      return false;
   }
   // if the value entered is not a valid email address, 
   // we show a message, focus on the field and return false.
   // returning false will make sure the form is not submitted

   // if we got here, it means the email address is valid
   return true;
   // return true means that the form is submitted.
}

</script>

After placing this function in the code, here is what you need to put in the form.

Let's say the form only has the email address and a submit button.

<form action="/" method="post" onsubmit="return validate_form()" name="form1">
<input type="text" name="email" value="">
<input type="submit" name="submit_button" value="continue">
</form>

michael

  • Aug 6th, 2006
 

a better way is to use regular expression

script for email validations// check if email field is blankif (theForm.Email.value == ""){alert("Please enter a value for the "Email" field.");theForm.Email.focus();return (false);}// test if valid email address, must have @ and .var checkEmail = "@.";var checkStr = theForm.Email.value;var EmailValid = false;var EmailAt = false;var EmailPeriod = false;for (i = 0; i < checkStr.length; i++){ch = checkStr.charAt(i);for (j = 0; j < checkEmail.length; j++){if (ch == checkEmail.charAt(j) && ch == "@")EmailAt = true;if (ch == checkEmail.charAt(j) && ch == ".")EmailPeriod = true; if (EmailAt && EmailPeriod) break; if (j == checkEmail.length) break; } // if both the @ and . were in the stringif (EmailAt && EmailPeriod){ EmailValid = true break; }}if (!EmailValid){alert("The "email" field must contain an "@" and a ".".");theForm.Email.focus();return (false);}

Saurabh

  • May 3rd, 2007
 

/^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/

Use this regular expression

You can be more strict by using .com,.biz,.org,.arpa etc in regular expression

There are many varieties of email validation. This one is simple, but effective.

function isValidEmail(str) {

   return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
 }

  Was this answer useful?  Yes

Ravi Maggon

  • May 16th, 2011
 

<html>
  <head>
    <script type="text/javascript">
  function check()
   {
    var filter=/^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_.]+@[a-zA-Z0-9]+[a-zA-Z0-9_-]+[a-zA-Z0-9]+.[a-z]{2,4}$/;
     if(!filter.test(document.getElementById("email").value))
     {
      alert("Wrong Email Id");
      return false;
     } else {
      alert("Correct Email Id");
      return true;
     }
   }
    </script>
  </head>
  <body>
    <form action="" onsubmit="return check()">
   <input type="text" name="email" id="email" />
   <input type="submit" value="submit" />
    </form>
  </body>
</html>

  Was this answer useful?  Yes

Give your answer:

If you think the above answer is not correct, Please select a reason and add your answer below.

 

Related Answered Questions

 

Related Open Questions