求验证EMAIL格式的方法
最好有代码
谢谢

解决方案 »

  1.   


    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 checkEmail(){
      var str = document.getElementById("textid").value;    
      if(email_test(str)!=0)
      {
        alert("Email格式违法!");
      }
      
    }
      

  2.   

    匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
    js代码:
    var reg = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;
    if(str.match(reg)) {
    //ok
    } else {
    //error
    }
      

  3.   

    <script language="javascript">
        var patterns = new Object();
    //匹配邮件地址
        patterns.email = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;
      function verify(str,pat)
        {        
            thePat = patterns[pat];
            if(thePat.test(str))
            {
                return true;
            }
            else
            {
                return false;
            }
        }
    </script>