codetoad.com
  ASP Shopping CartForum & BBS
  - all for $20 from CodeToad Plus!
  
  Home || ASP | ASP.Net | C++/C# | DHTML | HTML | Java | Javascript | Perl | VB | XML || CodeToad Plus! || Forums || RAM 
Search Site:



Home » Javascript » Article

Javascript Email Validation function

Article by:  Jeff Anderson  ( 1362 ) (2/26/2002)
Bookmark us now! Add to Favourites
Email a friend!Tell a friend
Sponsored by: FindMyHosting - Web Hosting Search
Summary: A javascript validation function to check whether the user has entered a valid email address in a form.
Viewed: 239632 times Rating (97 votes): 
 2.5 out of 5
 Rate this Article  Read Comments  Post Comments


There are many varieties of email validation. This one is simple, but effective. It checks for a period (.) character anywhere after the 3rd character in the string (this is very cautious, allowing for one letter domain names e.g. a@b.com; and for @ characters anywhere after the first character (more possible, as a single letter username is easily possible)

If both of these exist, the function returns true, otherwise it returns false.




function isValidEmail(str) {

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

}

To understand how to use the IsValidEmail function to validate a form, see Form Validation function Page.







CodeToad Experts

Can't find the answer?
Our Site experts are answering questions for free in the CodeToad forums
Rate this article:     Poor Excellent
View highlighted Comments
User Comments on 'Javascript Email Validation function'
Posted by :  Archive Import (Richard Koudry) at 05:00 on Wednesday, September 18, 2002
This function is fantastic, but there is one problem:

It accepts an invalid email address, e.g. try@haveago.

is accepted as a valid address. The address should not finish with a dot unless I am mistaken.
Posted by :  Archive Import (Scott Kreischer) at 18:55 on Tuesday, October 22, 2002
<script language="javascript"><!--

function verifyEmail(form) {
checkEmail = form.email.value

if ((checkEmail.indexOf('@') < 0) || ((checkEmail.charAt(checkEmail.length-4) != '.') && (checkEmail.charAt(checkEmail.length-3) != '.')))
{alert("You have entered an invalid email address. Please try again.");
form.email.select();
return false;
}

else {
form.method="get";
form.target="_self";
form.action="myscript.cgi";
form.submit();
}

}
//--></script>
Posted by :  Archive Import (jantje) at 16:57 on Thursday, November 07, 2002
Leuk hoor
Posted by :  Archive Import (Bikash Biswas) at 02:34 on Saturday, November 30, 2002
There are certain points to be noted

1) What about domain names ending with .de , .se ,.in

2)The e-mail address like "bikash" is valid one. Try any unix box.

3)The e-mail address need not always contain "." . Again try any Unix box.
Posted by :  Archive Import (mamtha) at 04:17 on Wednesday, January 15, 2003
Scott Kreischer' code works for .in,.de etc
Posted by :  Archive Import (Paul) at 06:29 on Wednesday, February 19, 2003
function validate()
{
validRegExp = /^[^@]+@[^@]+.[a-z]{2,}$/i;
strEmail = document.form1.email.value;

if (strEmail.search(validRegExp) == -1)
{
alert(" A valid e-mail address is required.\r\Please check you have entered your details correctly.\r\r\ © Paul Holmes 2001-2003");
return false;
}
Posted by :  Archive Import (DinoBrain) at 14:08 on Wednesday, April 23, 2003
hi there...
when i enter an e-mail like this: dino@@yahoo.com .it's still accept this e-mail... can u make it better?
Posted by :  Archive Import (Pedro) at 14:11 on Monday, May 19, 2003
To validate email format, I've had luck with the following regular expression:

/^\w(\.?[\w-])*@\w(\.?[\w-])*\.[a-z]{2,6}$/i;

However, some browsers (Mac IE?) will result in an alert if there is an underscore. Any ideas why?
Posted by :  Archive Import (murali) at 04:34 on Saturday, June 21, 2003
THe email validation should check for the postition of @ and the (.) and the last 3 characters after dot.a maximum length of email not just @ and .
Posted by :  Archive Import (William) at 03:48 on Tuesday, August 12, 2003
this is the best I found and it works!


function isEmail(string) {
if (string.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
return true;
else
return false;
}




For the explanation:

http://tech.irt.org/articles/js049/index.htm
Posted by :  Archive Import (email_val) at 19:47 on Monday, August 25, 2003
Scott's stuff is better. But thanks anyways !
Posted by :  Archive Import (goddy) at 13:55 on Wednesday, August 27, 2003
i need the function of e-mail to be state out for me
Posted by :  sai_cool at 22:39 on Thursday, April 14, 2005
Can any body provide me a solution of running a c++ code using Java.Is there any command.
Posted by :  duncanbeevers at 16:32 on Monday, April 10, 2006
Same as William's example above, but true and false are returned implicitly.

function isEmail(string) {
return (string.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1);
}
Posted by :  bestondoa at 09:15 on Thursday, December 07, 2006
The beauty of this function is that it is extraordinarly simple.

Although there are some flaws. For example it will return true with the following string: 'asd@.com' or 'asd.asd@.com', which are obviously not valid e-mail addresses.

So i made a little change, keeping it simple anyway:

function isValidEmail(str) {
return (str.lastIndexOf(".") > 2) && (str.indexOf("@") > 0) && (str.lastIndexOf(".") > (str.indexOf("@")+1));
}

Cheers

<Added>

Here is an updated version.
Now it checks if exists more than one '@', like asd@@asd.com

function isValidEmail(str) {
return (str.lastIndexOf(".") > 2) && (str.indexOf("@") > 0) && (str.lastIndexOf(".") > (str.indexOf("@")+1)) && (str.indexOf("@") == str.lastIndexOf("@"));
}
Posted by :  goit at 15:10 on Tuesday, June 26, 2007
This is regarding Posted by : bestondoa at 09:15 on Thursday, December 07, 2006

have you done simple unit tests for your function? In my opinion you might not have tested it with some cases.
Definitely it is not a valid function to check email addresses, for instance if the email value is '.@......' then your function assumes it is a valid email.

Do you think this is a valid email address?

Thanks,
Posted by :  goit at 15:21 on Tuesday, June 26, 2007
This is regarding the function provided in the article by Jeff Anderson:

For your convineince here is the function:

function isValidEmail(str) {
return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);

}

if the input is '#@@@...' then obviously the function reports as this is a valid email, is that?

I wonder why people get into rush to write something that is erroneous.


Thanks,
Goit
Posted by :  bestondoa at 07:33 on Wednesday, October 31, 2007
To goit:

See my post above? Did you get the logic?

Well, next time you find an error, try and help the community by submitting a possible solution.
I did that, solved a couple of errors, but obviously there are more as you correctly pointed out.

Nevertheless your post lacks a solution. If everyone did as you, we wouldn't probably be here reading other people's suggestions/solutions.

Thanks,
Bestondoa


To post comments you need to become a member. If you are already a member, please log in .

 



RELATED ARTICLES
Javascript - Enable and Disable form elements
by Jeff Anderson
This is a relatively little known and under-used feature of javascript which can be very useful in guiding a user through a form. Using the disabled tag, you can switch on and off elements in a form.
Javascript Onload Event
by Jeff Anderson
Sometimes you need to perform an action immediatley after the page has loaded. That's when the onLoad Event Handler comes in handy
Check IsNumeric Function
by Jeff Anderson
A javascript validation function to check whether the details entered by a user are numeric.
Form Validation Function
by Jeff Anderson
A javascript validation function that you can use to validate all types of forms.
JavaScript Field Is Empty Form Validation
by Jeff Anderson
This javascript function allows you to check whether a form field has been completed or not.
Javascript Get Selected Text
by Jeff Anderson
A cross-browser script to get text selected by the user
Check Email Validation Function
by Jeff Anderson
A javascript validation function to check whether the user has entered a valid email address in a form.
Multiple submit buttons on a single form
by Kiran Pai
This script shows you how to submit the contents of a form to different programs depending on which Submit button you press. Additionally it also shows how to call two different functions when you press the Submit button.
Validate Form and Disable Submit Button
by Marylou Marks
I have a form that validates info, but I also want to disable the submit button. The disable part worked before adding the form validating.
Simple date validation
by Chris Hogben
function that takes a date in three parts, day, month and year - returns true if it's a valid date.








Recent Forum Threads
• help - sketch
• Re: Perl Script - File Handling.
• Open a file from website
• Re: to open 5 terminals from one and also execute different commands on each terminal
• read a selected multiple line, those should match some of the values read in the files..
• Help me please
• Empty the contents of a file.
• Month Start, End dates
• show hide problem in dynamic table creation


Recent Articles
ASP GetTempName
Decode and Encode UTF-8
ASP GetFile
ASP FolderExists
ASP FileExists
ASP OpenTextFile
ASP FilesystemObject
ASP CreateFolder
ASP CreateTextFile
Javascript Get Selected Text


© Copyright codetoad.com 2001-2008