|Updated Versions Available|
|Updated versions of these scripts are available at the following FAQs on ASPFAQs.com:|
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:
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>" else If test(email) = True Then response.write "Good" else end if end if </script>
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" else 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 firstname.lastname@example.org and email@example.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).
If you have any questions feel free to email me at: firstname.lastname@example.org