标题:JS邮箱正则判断,正则表达式验证邮箱。 出处:向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除 时间:Tue, 29 Sep 2015 10:54:45 +0000 作者:jackxiang 地址:http://jackxiang.com/post/8273/ 内容: 背景:正则是一门厚书啊,想写好也不容易,但日常中也就那些像电话、邮箱、手机,网上一堆,但真好验证好了,还得了解一点正则知识,再就是多测试了:-) 下面邮箱正则: 中划线:中划线域名就是米农口中说的扁担域名了,扁担域名由于输入比较麻烦,看起来也比较不正规,是没有多大的价值,目前投资的人是比较少的。按照DNS的标准,域名是不允许有下划线的。 下划线:一些人在注册用户名的喜欢使用下划线_,这种用户名在登录邮箱时很麻烦,给你发邮件的人也很不方便。 二级域名邮箱基本被消灭,这个哥们的正则可以写下划线,扩大了范围但问题不大,主要是起到提示用户就可以了。 com.cn域名支持:((\.[a-zA-Z0-9-]{2,3}){1,2} com.cn —————————————————————————————————————————————————————————————— //emailpreg = /^[A-Za-zd]+([-_.][A-Za-zd]+)*@([A-Za-zd]+[-.])+[A-Za-zd]{2,5}$/; //这个对QQ号的邮箱验证不了。 emailpreg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/; //dfdfd1212@dfdfd.abc.cn 都成二级邮箱。abc@12df1.com.cn emailpreg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9-])+((\.[a-zA-Z0-9-]{2,3}){1,2})$/; //域名是不允许有下划线的 ,去掉下划线,这个就是最后的正则,发现其像afeng@staff.jackxiang.com 这样的匹配不了。至于还有啥首字母不能是下划线,要这样,这正则就还得加长...用户也不是sb,只是起到一定提示作用,别搞复杂了,还是做一下简单的验证,对后面的com,tv,com.cn啥的别验证太细了: ^[A-Za-z0-9]+((-|_|\.)[A-Za-z0-9]+)*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$ 到此为止吧。 用正则猫可以分析一下: ^[A-Za-z0-9]+ :以大小写字母和数字开头, 并重复一次或多次。 (-|_|\.) :中间可夹杂- _ . ,注意是分组,这个分组里是或,也就是可没有这些也成。 [A-Za-z0-9]+ :分装后紧跟大小写字母及数字,这个可以重复一次或多次。(如果- _ .没有可以理解为全是匹配一次或多次的大小写字母和数字符) ((-|_|\.)[A-Za-z0-9]+)+ :小组里并成大组匹配一次或多次。 后面也是类似和前面的分组,最后加一个点再匹配一次或多次(点后的com,org,并没有作长度限定)! ============================================================================
}else if($(this).attr('res') == '2' && !emailpreg.test($(this).val())){//从QQ登录过来的用户大网接口获取不到邮箱,放开让其填写。 $(this).css("border","1px solid #f00"); $("#"+$(this).attr('res')+'span').remove(); $("#"+$(this).attr('res')).after("
"+$(this).attr("rel")+"格式不正确
"); $(this).focus(); res = false; return false; —————————————————————————————————————————————————————————————— JavaScript表单验证email,判断一个输入量是否为邮箱email,通过正则表达式实现。 //检查email邮箱 function isEmail(str){ var reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((\.[a-zA-Z0-9_-]{2,3}){1,2})$/; return reg.test(str); } 摘自:http://www.ijavascript.cn/yanzheng/validate-email-186.html Generated by Jackxiang's Bo-blog 2.1.1 Release