您在本站的位置:主 页 >> 站长专区 >> 站长作品:《邮件地址的正确性验证》
《站长作品》】                          邮件地址的正确性验证

    网页中的留言簿、网上调查经常要求浏览者在提交的表单中输入电子邮件地址,而有些电子邮件地址由于填写者的随意输入或错误输入等原因,其正确性很难保证。其实,如果我们注意到现今所有电子邮件地址的特点,完全可以使用程序进行“过滤”,将某些明显错误的邮件地址拒之门外。
    如今互联网上的邮件地址具有如下的特点:
    (1)、作为一串最简形式为“a@b.c”的字符串,其长度一般都应大于 5;
    (2)、都包含字符“@”,并且只包含一个这样的字符;
    (3)、至少包含一个点符号“.”;
    (4)、最后一个点符号后的字母数一般不能超过 3 个,因为这是国际顶级域名;
    (5)、组成邮件地址的字符集为:字母“A-Z”、“a-z”、“@”、“-”、“_”、“.”等,这意味着邮件地址中间也不能留有空格;
    如果输入的电子邮件地址不能满足以上要求,则一般可以认为该地址是错误的。根据这种思想,笔者编写了一段 ASP 程序,用于在 Web 服务器端进行邮件地址的正确性验证。
     <!- ChkEmail.asp -->
     <Form method="post">
     <input type="hidden" name="submit" value="done">
     <input name="theemail" size="30">
     <input type="submit">
     </Form>
     <%
     if request.form("submit")="done" then
     '验证邮件地址的正确性:如果地址有效则返回 0,否则返回 1
     Function ChkEmail(theAddress)
     dim atCnt
     chkEmail = 0

     ' 邮件地址的长度不应小于 5
     if len(theAddress) < 5 then 
     chkEmail = 1

     ' 至少要有一个“@”符号
     elseif instr(theAddress,"@") = 0 then
     chkEmail = 1
  
     ' 至少要有一个“.”符号
     elseif instr(theAddress,".") = 0 then
     chkEmail = 1

     ' 判断最后一个点符号后的字母数是否超过 3 个
     elseif len(theAddress) - instrrev(theAddress,".") > 3 then
     chkEmail = 1
     else

     ' 判断邮件地址中有几个"@",若超过1个则不合法
     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

     ' 检查组成邮件地址的字符
     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
     ret=ChkEmail(trim(request.form("theemail")))
     if ret=1 then
     response.write("错误")
     end if
     if ret=0 then
     response.write("正确")
     end if
     End If
     %>
                                             张庆 Email: zhangking@263.net  2000.11.12

返回“站长专区”
Copyright(C) By ZhangQing 张庆 返回主页
站长邮箱:zhangking@263.net  Bp:029-95808 呼 822686