JS邮箱正则判断,正则表达式验证邮箱。 不指定

jackxiang 2015-9-29 10:54 | |
背景:正则是一门厚书啊,想写好也不容易,但日常中也就那些像电话、邮箱、手机,网上一堆,但真好验证好了,还得了解一点正则知识,再就是多测试了:-)
下面邮箱正则:
中划线:中划线域名就是米农口中说的扁担域名了,扁担域名由于输入比较麻烦,看起来也比较不正规,是没有多大的价值,目前投资的人是比较少的。按照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,并没有作长度限定)!
============================================================================
<dd><input id="2" rel="邮箱"  res='2' type="text" class="item-edit-txt"  name="2" value="<{$user.email}>" ></dd>

}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("<span id="+$(this).attr('res')+'span'+"><br />"+$(this).attr("rel")+"格式不正确</span>");
    $(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

作者:jackxiang@向东博客 专注WEB应用 构架之美 --- 构架之美,在于尽态极妍 | 应用之美,在于药到病除
地址:http://jackxiang.com/post/8273/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!


最后编辑: jackxiang 编辑于2015-10-22 11:03
评论列表
2016-10-7 10:20 | Captain-Alan Email Homepage
请问:如何验证个人邮箱和企业邮箱?
分页: 1/1 第一页 1 最后页
发表评论

昵称

网址

电邮

打开HTML 打开UBB 打开表情 隐藏 记住我 [登入] [注册]