检查email只需有@有点就成,没必要太严格,
不光是法语,汉字email也有啊

解决方案 »

  1.   

    谢谢,
    再请教一个问题:
    比如[email protected]
    对于最后一个域名XX,是不是什么字符都可以,还是有什么国际标准的?需要怎么校验?
      

  2.   

    function ValidateEMail(str) {
        element2=str.indexOf('@');
        if ((element2> 0) &&
           (str.substring(0, element2).indexOf('@')< 0) &&
           (str.substring(element2+ 1).indexOf('@')< 0) &&
            (str.substring(element2+ 1).indexOf('.')> 0) &&
            (str.indexOf('.')> 0) && (str.lastIndexOf('.')< (str.length- 1))) {
    var i= IsDigiAlphExtra(str, _charset_email_extra);
    if (i>=0){
                return true;
            }
        } else {
            return true;
        }
        return false;
    }
    对,只需要让他有一个@并且有点就成.其它的不需要校验
      

  3.   

    function IsDigiAlphExtra(str, charsetExtra) {
        for (var i= 0; i< str.length; i++) {
            var ch= str.charAt(i);
            if (!(((ch>= 'A')&&(ch<='Z')) || ((ch>= 'a')&&(ch<='z')) || ((ch>='0')&&(ch<='9')) || ((charsetExtra!=null) && (charsetExtra.indexOf(ch)>=0)))) {
                return i;
            }
        }
        return -1;
    }
    你喜欢用函数也行,你喜欢用楼上的正则也行.
      

  4.   

    var i= IsDigiAlphExtra(str, _charset_email_extra);
    if (i>=0){
                return true;
            }
    IsDigiAlphExtra这个方法是标准校验,如果不需要的话,就去掉就成了.
    只留return true;
    function ValidateEMail(str) {
        element2=str.indexOf('@');
        if ((element2> 0) &&
           (str.substring(0, element2).indexOf('@')< 0) &&
           (str.substring(element2+ 1).indexOf('@')< 0) &&
            (str.substring(element2+ 1).indexOf('.')> 0) &&
            (str.indexOf('.')> 0) && (str.lastIndexOf('.')< (str.length- 1))) {
                return true;
        } else {
            return true;
        }
        return false;
    }
      

  5.   

    原则上,域名可以有五级(如[email protected]),汉字域名早就有了。
      

  6.   

    [email protected]
    都有可能哦。。