比较正宗的验证邮箱的正则表达式js代码详解

 更新时间:2012年09月04日 23:33:53   作者:   我要评论

邮箱正则最正宗的一条正则语句是^[a-z0-9]+([._\\-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$ 下面我们来讲解一下
fuchangxi的正则:
复制代码 代码如下:

/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/

开始必须是一个或者多个单词字符或者是-,加上@,然后又是一个或者多个单词字符或者是-。然后是点“.”和单词字符和-的组合,可以有一个或者多个组合。
复制代码 代码如下:

<script type="text/javascript">
function isEmail(str){
var reg = /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
return reg.test(str);
}
var str = 'test@hotmail.com';
document.write(isEmail(str)+'<br />');
var str2 = 'test@sima.vip.com';
document.write(isEmail(str2)+'<br />');
var str3 = 'te-st@qq.com.cn';
document.write(isEmail(str3)+'<br />');
var str4 = 'te_st@sima.vip.com';
document.write(isEmail(str4)+'<br />');
var str5 = 'te.._st@sima.vip.com';
document.write(isEmail(str5)+'<br />');
</script>

我不太了解邮箱的具体规则。感觉这个正则比较简单

统计一下邮箱@前缀的几种类型

1、纯数字
比如:123456@jb51.net
2、纯字母
3、字母数字混合
4、带点的
比如:web.blue@jb51.net
5、带下划线
比如:web_blue@jb51.net
6、带连接线
比如:web-blue@jb51.net
邮箱域至少有一个“.”和两个单词,再严格点那么最后的顶级域至少要2个字母,最大呢?以域名“name”为准,那么最大就是4,宽松点就设为5吧^_^。

当然以上不可能的情况:以“_”或“-”开头或者结尾,包含特殊符号的。
因此,我给出的正则表达式如下:

^[A-Za-zd]+([-_.][A-Za-zd]+)*@([A-Za-zd]+[-.])+[A-Za-zd]{2,5}$

复制代码 代码如下:

<script type="text/javascript">
fChkMail=function(szMail){
var szReg=/^[A-Za-zd]+([-_.][A-Za-zd]+)*@([A-Za-zd]+[-.])+[A-Za-zd]{2,5}$/;
var bChk=szReg.test(szMail);
return bChk;
}
</script>
<input type="text" id="Mail" value="" />
<input type="button" value="验证邮箱地址" onclick="alert(fChkMail(document.getElementById('Mail').value));" />
<p>邮箱不能以 - _ .以及其它特殊字符开头和结束</p>
<p>邮箱域名结尾为2~5个字母,比如cn、com、name</p>

相关文章

  • 中文用户名的js检验正则

    中文用户名的js检验正则

    好多网站需要用中文用户名注册,下面的代码就是客户端检测。强烈建议后台也要控制一下。
    2009-11-11
  • 仅1个例子轻松学习正则表达式

    仅1个例子轻松学习正则表达式

    这篇文章主要通过举例理解正则表达式,从一个例子深入解析正则表达式的使用方法,感兴趣的小伙伴们可以参考一下
    2015-12-12
  • C#中的正则表达式 学习资料

    C#中的正则表达式 学习资料

    C#中的正则表达式 学习资料...
    2007-03-03
  • 正则表达式教程之子表达式用法分析

    正则表达式教程之子表达式用法分析

    这篇文章主要介绍了正则表达式教程之子表达式用法,分析了正则表达式中子表达式的概念、功能与使用方法,需要的朋友可以参考下
    2017-01-01
  • js 正则表达式学习笔记之匹配字符串

    js 正则表达式学习笔记之匹配字符串

    这篇文章主要介绍了js 正则表达式匹配字符串,需要的朋友可以参考下
    2014-05-05
  • javascript下正则匹配百分比的代码

    javascript下正则匹配百分比的代码

    javascript下正则匹配百分比的代码...
    2007-08-08
  • php正则替换变量指定字符的方法

    php正则替换变量指定字符的方法

    这篇文章主要介绍了php正则替换变量指定字符的方法,涉及php使用正则表达式进行字符串替换的技巧,非常具有实用价值,需要的朋友可以参考下
    2015-03-03
  • 密码强度的正则表达式两种方案JS总结篇

    密码强度的正则表达式两种方案JS总结篇

    本文给出了两个密码强度的正则表达式方案,一个简单,一个更复杂和安全。并分别给出了两个方案的解析和测试程序。对密码强度正则表达式的两种方案感兴趣的朋友跟随脚本之家一起看看吧
    2018-03-03
  • 正则基础之 神奇的转义

    正则基础之 神奇的转义

    不同的语言或应用场景下,正则定义方式、元字符出现的位置不同,转义的方式也是林林总总,不一而同
    2012-10-10
  • PHP中的递归正则表达式用法分享

    PHP中的递归正则表达式用法分享

    其实很多语言中的正则表达式都是支持递归的, 本文主要介绍PHP的正则递归. 虽然, 工作中最常用的正则表达式都很普通, 只用最基本的语法就能解决85%以上的问题, 而且合理有效地使用普通正则来解决复杂问题也是一门技巧与学问,但是更高级一点的语法的确有它存在的价值,看下面具体介绍
    2012-09-09

最新评论