When you think ASP, think...
Recent Articles xml
All Articles
ASP.NET Articles
Related Web Technologies
User Tips!
Coding Tips
spgif spgif

Sample Chapters
JavaScript Tutorials
MSDN Communities Hub
Official Docs
Stump the SQL Guru!
XML Info
Author an Article
spgif spgif
ASP ASP.NET ASP FAQs Feedback topnav-right
Print this page.
Published: Friday, May 28, 1999

ASP/Jscript Email Validation

Updated Versions Available
Updated versions of these scripts are available at the following FAQs on ASPFAQs.com:

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 xxx@xxx.com and xxx@yyy.zzz.com.


[\\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 http://msdn.microsoft.com/scripting. 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: madcow@olg.com

    Happy Programming!

  • ASP.NET [1.x] [2.0] | ASPFAQs.com | Advertise | Feedback | Author an Article