To read the article online, visit

ASP/Jscript Email Validation

Updated Versions Available
Updated versions of these scripts are available at the following FAQs on

The other day I noticed that number 3 on the most visited page was the email validation routine. A light bulb went off in my head. What a great way to show the power of using JavaScript in ASP!

Since most ASP developers use VBscript, I wanted to build a short server-side JavaScript that people could just place into an include file and then reference it from their code.

Another factor I had to consider was the complexity. I wanted to make it comprehensive but I didn't want the user leaving because his email wouldn't validate properly. So I came up with this routine:

<script language=JavaScript runat=Server>
function test(src) {
     var emailReg = "^[\\w-_\.+]*[\\w-_\.]\@([\\w]+\\.)+[\\w]+[\\w]$";
     var regex = new RegExp(emailReg);
     return regex.test(src);

And you can reference it from your VBscript using something like this:

<script language=VBscript runat=Server>
email = trim(request.form("email"))
If email = "" Then
   response.write "<form action='regex_email.asp' method='post'>
   response.write "<input type='text' name='email'><br>"
   response.write "<input type='submit' value='submit'></form>"
   If test(email) = True Then
	   response.write "Good"
   end if
end if

If you look at the VBscript code you can see that if the form has data then it will send it to the Jscript "test" function using:

If test(email) = True Then
	response.write "Good"
	response.write "Bad"
end if

Once the data is passed to the Jscript Function "test" it will then evaluate it based on the following regular expression:


This is were the true power of Jscript this function lies, so let's

The first part:

^ means "check the first character". In this case it's checking to make sure its a word character (a-z0-9) using \\w and it can also be a underscore, hyphen, period, or plus sign.


The * means "match the preceding zero or more times". and of course the next part [\\w-_\.] makes sure they are word characters or underscores, etc.


\@ checks for the @ symbol. [\\w]+ means find one or more alphanumeric characters, while \\. matches a literal period. These are grouped and another + symbol is used - ([\\w]+\\.)+ - to indicate that this match can occur one to many times. In other words, it allows email addresses like and


[\\w] makes sure there is one or more word characters after the period. [\\w]$ checks the last character to make sure it's a word character (domain or IP address) and not a odd character. $ means "check the last character".

That pretty much sums the regular expression up. You can find out more about using regular expressions on Just a note though - all the docs must be taken with a grain of salt. I had to make a few changes in order to get the expressions to work (like putting \\w instead of the normal \w).


  • Zip file with this article's code...

    If you have any questions feel free to email me at:

    Happy Programming!

  • Article Information
    Article Title: ASP/JScript Email Validation
    Article Author: Ian Stallings
    Published Date: Friday, May 28, 1999
    Article URL:

    Copyright 2018 QuinStreet Inc. All Rights Reserved.
    Legal Notices, Licensing, Permissions, Privacy Policy.
    Advertise | Newsletters | E-mail Offers