zoukankan      html  css  js  c++  java
  • JavaScript验证Email地址

    电子邮件地址具有以下统一的标准格式:用户名@服务器域名。

    用户名表示邮件信箱、注册名或信件接收者的用户标识,@符号后是你使用的邮件服务器的域名。@可以读成“at”,也就是“在”的意思。整个电子邮件地址可理解为网络中某台服务器上的某个用户的地址。
    1.用户名,可以自己选择。由字母a~z(不区分大小写)、数字0~9、点、减号或下划线组成;只能以数字或字母开头和结尾,例如:beijing.2008;用户名长度为4~18个字符 。
    2.与你使用的网站有关,代表邮箱服务商。例如网易的有@163.com/@126.com/@188.com/@Yeah.com等;新浪的是@sina.com/@vip.sina.com等

    完整js验证Email 
    function char_test(chr)   
    //字符检测函数   
    {   
     var i;   
     var smallch="abcdefghijklmnopqrstuvwxyz";   
     var bigch="ABCDEFGHIJKLMNOPQRSTUVWXYZ";   
     for(i=0;i<26;i++)   
     if(chr==smallch.charAt(i) || chr==bigch.charAt(i))   
       return(1);   
     return(0);   
    }   
     
    function spchar_test(chr)   
    //数字和特殊字符检测函数   
    {   
     var i;   
     var spch="_-.0123456789";   
     for (i=0;i<13;i++)   
       if(chr==spch.charAt(i))   
       return(1);   
     return(0);   
    }   
     
    function email_test(str)   
    {   
     var i,flag=0;   
     var at_symbol=0;   
     //“@”检测的位置   
     var dot_symbol=0;   
     //“.”检测的位置   
     if(char_test(str.charAt(0))==0 )   
      return (1);   
     //首字符必须用字母   
     
     for (i=1;i<str.length;i++)   
     if(str.charAt(i)=='@')   
       {   
        at_symbol=i;   
        break;
       }   
     //检测“@”的位置   
     
     if(at_symbol==str.length-1 || at_symbol==0)   
      return(2);   
     //没有邮件服务器域名   
     
     if(at_symbol<3)   
      return(3);   
     //帐号少于三个字符   
     
     if(at_symbol>19 )   
      return(4);   
     //帐号多于十九个字符   
     
     for(i=1;i<at_symbol;i++)   
     if(char_test(str.charAt(i))==0 && spchar_test(str.charAt(i))==0)   
       return (5);   
     for(i=at_symbol+1;i<str.length;i++)   
     if(char_test(str.charAt(i))==0 && spchar_test(str.charAt(i))==0)   
       return (5);   
     //不能用其它的特殊字符     
        
     for(i=at_symbol+1;i<str.length;i++)   
     if(str.charAt(i)=='.') dot_symbol=i;   
     for(i=at_symbol+1;i<str.length;i++)   
     if(dot_symbol==0 || dot_symbol==str.length-1)   
     //简单的检测有没有“.”,以确定服务器名是否合法   
      return (6);   
      
     return (0);
     //邮件名合法
    }
    function emailCheck(str) {
     //var st=email_test(str);
     if(str.length==0)
     {alert("请输入Email");}
     else
     {
      if(email_test(str)==1)alert("Email首字符必须用字母");
      if(email_test(str)==2)alert("Email没有邮件服务器域名");
      if(email_test(str)==3)alert("Email帐号少于三个字符 ");
      if(email_test(str)==4)alert("Email帐号多于十九个字符");
      if(email_test(str)==5)alert("Email不能用其它的特殊字符");
      if(email_test(str)==6)alert("简单的检测有没有“.”,以确定服务器名是否合法");
     }
    }

     <script type="text/javascript" language="javascript" src="js/function.js"></script>

    调用<input name="mail" type="text" id="mail" onblur="emailCheck(this.value)" />

  • 相关阅读:
    判断一个字符串是否为回文串
    读<大道至简>软件工程实践者的思想有感
    Java学习10.23(设置页面的编码方式1)
    Java学习10.25(javaweb在界面输出2)
    【搜索】C000_LG_奶酪(bfs)
    【并查集】B001_AW_自动程序分析(不要求顺序时的离散化)
    b_aw_信息传递 & 银河英雄传说(并查集暴力求环 / 记忆化 | 带权并查集)
    b_pat_团伙头目(并查集/dfs+字符串整形互相映射)
    【堆】C003_AW_接水问题(暴力 / 堆)
    【并查集】C002_AW_樱桃网 & 打击犯罪(最下生成树 / dfs / 并查集求连通块)
  • 原文地址:https://www.cnblogs.com/hakuci/p/1856462.html
Copyright © 2011-2022 走看看