js 正则匹配邮箱_JS正则匹配邮箱格式
观察一些邮箱格式,有些邮箱格式简单,有些复杂,在网上找了个邮箱的正则表达式,分析一下邮箱的规则。
该表达式:
/^\w+([\.\-]\w+)*\@\w+([\.\-]\w+)*\.\w+$/
拆分:
【1】/^\w+
以英文,数字,下划线开头,(一个或多个。)
【2】([\.\-]\w+)*
跟着点或中线任意一个,然后再跟着的英文、数字、下划线(一个或多个)。
这个整个部分用圆括号括起来,可以零个一个或多个。(可有可无,可多个)
【3】\@\w+
跟着一个@符号,后面英文、数字、下划线(一个或多个)
【4】([\.\-]\w+)*
跟着点或中线任意一个,然后再跟着的英文、数字、下划线(一个或多个)。
这个整个部分用圆括号括起来,可以零个一个或多个。(可有可无,可多个)
【5】\.\w+
跟着一个点,后面跟着英文、数字、字母、下划线(一个或多个)
整个表达式没有|或这种情况,所以就是一个从左到右的整体。其中有两个一样的部分【2】和【4】都是*,*代表零个一个或多个,是可有可无,这里面有两个*的地方。可以用匹配简单邮箱和复杂邮箱。
这两个可有可无的部分,一个在@符号前面,一个在@符号后面,这个组合是点或中线,加至少一个字母下划线英文的组合。
根据这个组合写几个情况例如:
这个组合不存在
.a(一个点后面跟着一个字母)
.abc.abc(这个组合有两个)
-34dvd-dege-derg(三个以-开头的组合)
.adf-dreg.der(两个以.开头带数字的,一个以短线开头带数字的)
这两个部分的数量词是星号,可有可无。
根据该表达式,先写最简单,这两个部分【2】和【4】是零个的情况:
55448934@dd.com
tayood@sod.comm
_ete_derg3748edfe@_egiou_die4355.diouue
5544893、tayood、_ete_derg3748edfe匹配【1】
@dd、@sod、@_egiou_die4355匹配【3】
.com、.comm、.diouue匹配的【5】
在写个有两个【2】的情况:
dged_derw.ergd-eges@doud.sed
.ergd-eges匹配的是【2】
写个有三个个【2】和三个【4】的情况。
dsfe_derd.erg.erd23_we-derw@_343de-eres-edd.34.com
.erg.erd23_we-derw匹配的是【2】
-eres-edd.34批评的是【4】
最后一个虽然也是点加数字字母下划线的组合,但是.com是【5】匹配的,因为【5】的是必须存在的,不是可有可无的。
根据表达式应该匹配到的邮箱格式:
55448934@dd.com
tayood@sod.comm
_ete_derg3748edfe@_egiou_die4355.diouue
dged_derw.ergd-eges@doud.sed
dsfe_derd.erg.erd23_we-derw@_343de-eres-edd.34.com
不该匹配到的几种格式:
.derg@dfo.com(以点开头,不匹配【1】)
der*g@dfo.com(含有*特殊字符,不匹配【1】)
34.cm(不匹配【3】)
der.34@@.con(不匹配【3】)
dwll@dooe(不匹配【5】)
dao3243(不匹配【3】【5】)
测试代码:
console.log("----------应该匹配到的----------");
console.log("55448934@dd.com,结果:"+/^\w+([\.\-]\w+)*\@\w+([\.\-]\w+)*\.\w+$/.test("55448934@dd.com"));
console.log("tayood@sod.comm,结果:"+/^\w+([\.\-]\w+)*\@\w+([\.\-]\w+)*\.\w+$/.test("tayood@sod.comm"));
console.log("_ete_derg3748edfe@_egiou_die4355.diouue,结果:"+/^\w+([\.\-]\w+)*\@\w+([\.\-]\w+)*\.\w+$/.test("_ete_derg3748edfe@_egiou_die4355.diouue"));
console.log("dged_derw.ergd-eges@doud.sed,结果:"+/^\w+([\.\-]\w+)*\@\w+([\.\-]\w+)*\.\w+$/.test("dged_derw.ergd-eges@doud.sed"));
console.log("dsfe_derd.erg.erd23_we-derw@_343de-eres-edd.34.com,结果:"+/^\w+([\.\-]\w+)*\@\w+([\.\-]\w+)*\.\w+$/.test("dsfe_derd.erg.erd23_we-derw@_343de-eres-edd.34.com"));
console.log("----------不该匹配到的----------");
console.log(".derg@dfo.com,结果:"+/^\w+([\.\-]\w+)*\@\w+([\.\-]\w+)*\.\w+$/.test(".derg@dfo.com"));
console.log("der*g@dfo.com.com,结果:"+/^\w+([\.\-]\w+)*\@\w+([\.\-]\w+)*\.\w+$/.test("der*g@dfo.com.com"));
console.log("34.cm,结果:"+/^\w+([\.\-]\w+)*\@\w+([\.\-]\w+)*\.\w+$/.test("34.cm"));
console.log("der.34@@.con,结果:"+/^\w+([\.\-]\w+)*\@\w+([\.\-]\w+)*\.\w+$/.test("5der.34@@.con"));
console.log("dwll@dooe,结果:"+/^\w+([\.\-]\w+)*\@\w+([\.\-]\w+)*\.\w+$/.test("dwll@dooe"));
console.log("dao3243,结果:"+/^\w+([\.\-]\w+)*\@\w+([\.\-]\w+)*\.\w+$/.test("dao3243"));
图示:
js 正则匹配邮箱_JS正则匹配邮箱格式相关推荐
- html js正则表达式语法,js正则表达式 非中文_js正则表达式匹配中文_js正则表达式语法...
腾讯云活动聚集了最新的降价打折.特惠折扣等资料,你在这里可以寻找云服务器.域名..小流程等等多种不同产品的促销活动,还有这些品牌的免费试用哦. 因为对js中的正则不太了解,可以参考一下js 中正则表达 ...
- js 对一个字段去重_js正则去重及(?=)的匹配规则
今天首先要讲的是如何利用正则去重复,例如有一串字符串'122345333',如何去其中的重复元素? var str='122345333'; while((str!=(str=str.replace( ...
- 前端 js 邮箱正则判断 (支持多个邮箱判断)
话不多说,上代码: var regEmail = /^((([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6}\;))*(([a-z0-9_\.-]+)@([\da ...
- JS正则表达式之邮箱的正则
使用正则表达式编写邮箱的正则 /*电子邮箱的基本格式:hello@abc.com.cnhello部分:表示任意的字母数字以及小圆点(.),如abc.abc@qq.com,不过小圆点的部分是可有可无的, ...
- jq 正则判断邮箱_Python正则15分钟入门
lypython群里有同学问我,如何从大量格式不确定的word文档抽取姓名.电话号码.邮箱等信息存入excel表格.通过之前我们的文章,他已经学会读取和写入文档和表格,但就是无法处理格式不确定的文档. ...
- 10、正则表达式 (笔试题、语法规则、正则对象方法、正则实例属性、支持正则表达式的String对象的方法、贪婪匹配与非贪婪匹配)
正则表达式 目录 10.1 语法规则 10.1.1 创建方法 1.直接量 2.构造方法RegExp() 10.1.2 三个属性i,g,m 10.1.3 方括号 10.1.4 元字符 10.1.5 量词 ...
- java正则全局匹配_正则表达式全局匹配模式(g修饰符)
正则表达式g修饰符: g修饰符用语规定正则表达式执行全局匹配,也就是在找到第一个匹配之后仍然会继续查找. 语法结构: 构造函数方式: new RegExp("regexp",&qu ...
- python表达匹配_python 中文正则表达匹配
需求:由于某个n年前的工具的错误,在复制一批文件的时候产生了大量的"复件xxxxxxx""复件(2)XXXXX"等类似文件,由于目录结构深,文件多,预计在500 ...
- 正则基础之 NFA引擎匹配原理
来源:http://www.jb51.net/article/19332.htm 1 为什么要了解引擎匹配原理 一个个音符杂乱无章的组合在一起,弹奏出的或许就是噪音,同样的音符经过作曲家的手,就可以谱 ...
最新文章
- 如何取小数点前两位并四舍五入?
- java通过反射,泛型将定义的对象与对象之间互转
- Coursera algorithm II PA4
- Qt Creator使用外部工具
- Java黑皮书课后题第4章:*4.8(给出ASCII码对应的字符)编写程序,得到一个ASCII码的输入(0~27之间的一个整数),然后显示该字符
- DNS and Bind (二)
- json 潜逃 结构体_JSON还原为结构体 - osc_t5zhwnvx的个人空间 - OSCHINA - 中文开源技术交流社区...
- 计组之存储系统:5、cache(cache功能、cache工作原理、cache性能分析)
- 前端的深拷贝和浅拷贝_javascript中的深拷贝和浅拷贝?
- 深度学习各场景评估指标总结
- 虚拟服务器网络无法连接,VMware虚拟机XP系统网络无法连接受限制或无连接解决方法...
- Houdini11:材质
- Soui Button学习一
- 在MATLAB绘制三角形区域上的二元函数图像
- Re.常系数齐次递推
- 一些框架图的色彩搭配
- 怎么看微信撤回的效果?教你看微信已撤回的消息、图片
- 添闻地图商户采集教程-含高德、腾讯、百度
- python迭代对象是什么意思_python的迭代对象
- 金蝶BOS开发代码调用过程