The chkEmail function performs a thorough check of an entered email address.
The following criteria is checked by chkEmail:
boolean =
chk
Email
(mailaddress)
<% ' chkEmail returns true response.write chkemail("me@mysite.com") response.write chkEmail("me_1@mysi_te.com") response.write chkEmail("101@mysite.ca") response.write chkEmail("ag_wd@e.jp") ' chkEmail returns false response.write chkEmail("steve@@d.com") response.write chkEmail("sd.john@ccc.com") response.write chkEmail("me@mysite.123") response.write chkEmail("me@mysitecom") response.write chkEmail("memysite.com") response.write chkEmail("me@m][ysite.com") response.write chkEmail("me@mysit&e.com") %>
<% function chkEmail(theAddress) ' checks for a vaild email ' returns 1 for invalid addresses ' returns 0 for valid addresses dim atCnt chkEmail = 0 ' chk length if len(mcstr(theAddress)) < 5 then ' a@b.c should be the shortest an ' address could be chkEmail = 1 ' chk format ' has at least one "@" elseif instr(theAddress,"@") = 0 then chkEmail = 1 ' has at least one "." elseif instr(theAddress,".") = 0 then chkEmail = 1 ' has no more than 3 chars after last "." elseif len(theAddress) - instrrev(theAddress,".") > 3 then chkEmail = 1 ' has no "_" after the "@" elseif instr(theAddress,"_") <> 0 and _ instrrev(theAddress,"_") > instrrev(theAddress,"@") then chkEmail = 1 else ' has only one "@" atCnt = 0 for i = 1 to len(theAddress) if mid(theAddress,i,1) = "@" then atCnt = atCnt + 1 end if next if atCnt > 1 then chkEmail = 1 end if ' chk each char for validity for i = 1 to len(theAddress) if not isnumeric(mid(theAddress,i,1)) and _ (lcase(mid(theAddress,i,1)) < "a" or _ lcase(mid(theAddress,i,1)) > "z") and _ mid(theAddress,i,1) <> "_" and _ mid(theAddress,i,1) <> "." and _ mid(theAddress,i,1) <> "@" and _ mid(theAddress,i,1) <> "-" then chkEmail = 1 end if next end if end function %>