Check if a E-Mail adress is valid
A simple function to test if a E-Mail adress is valid.
Author:
Jonas John
License:
Public Domain
Language:
Visual Basic
Created:
08/09/2007
Updated:
08/09/2007
Tags:
email, regular expressions, validators
Related links:
' Made by using VBScript version 5.6 Private Function IsEmailValid(byVal EmailAddress) Dim TestEmailAddress, RegularExpressionObject, ExpressionMatch ' Convert to string and trim whitespace TestEmailAddress = CStr( EmailAddress ) TestEmailAddress = Trim( TestEmailAddress ) ' Check if the given E-Mail adress is empty If TestEmailAddress = "" Then IsEmailValid = False Exit Function End If ' Minimum 6 characters... (a@b.de) if len(TestEmailAddress) < 6 Then IsEmailValid = False Exit Function End If ' Test the E-Mail adress with a regular expression ' (RegExp from regexlib.com - made by David Lott) Set RegularExpressionObject = New RegExp With RegularExpressionObject .Global = True .IgnoreCase = True .Pattern = "^([\w\-\.]+)@((\[([0-9]{1,3}\.){3}[0-9]{1,3}\])|(([\w\-]+\.)+)([a-zA-Z]{2,4}))$" End With ExpressionMatch = RegularExpressionObject.Test(TestEmailAddress) ' Does the RegExp match? If Not ExpressionMatch Then IsEmailValid = False Exit Function End If ' Cleanup Set RegularExpressionObject = Nothing Set ExpressionMatch = Nothing ' Congrats, the E-Mail adress is valid IsEmailValid = True End Function ' IsEmailValid returns true Response.Write IsEmailValid("test@example.com") Response.Write IsEmailValid("t@example.com") Response.Write IsEmailValid("404@example.org") Response.Write IsEmailValid("test@example.jp") Response.Write IsEmailValid("test.adress@example.com") ' IsEmailValid returns false Response.Write IsEmailValid("") Response.Write IsEmailValid("test@examplecom") Response.Write IsEmailValid("test@") Response.Write IsEmailValid("test@x") Response.Write IsEmailValid("@test") Response.Write IsEmailValid("example.com") Response.Write IsEmailValid("test@[example].com") Response.Write IsEmailValid("test@.com")
Feel free to leave a message:
Add a comment
Thanks a lot.