onvno / pokerface

日常技术文章阅读整理
3 stars 0 forks source link

20190602 - JS - 邮箱校验思考 #36

Open onvno opened 5 years ago

onvno commented 5 years ago

邮箱校验一般需要完美匹配,但实际上道高一尺,魔高一丈,很多临时邮箱的存在,实现校验就需要定制化服务。 邮箱/邮件地址的正则表达式及分析(JavaScript,email,regex)文章提到了集中校验方式,最终选择了可扩展性的:

var isEmail = function (val) {
    var pattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    var domains= ["qq.com","163.com","vip.163.com","263.net","yeah.net","sohu.com","sina.cn","sina.com","eyou.com","gmail.com","hotmail.com","42du.cn"];
    if(pattern.test(val)) {
        var domain = val.substring(val.indexOf("@")+1);
        for(var i = 0; i< domains.length; i++) {
            if(domain == domains[i]) {
                return true;
            }
        }
    }
    return false;
}
// 输出 true
isEmail("cn42du@163.com");