JS 邮箱正则表达式
发布时间:2025-05-21 10:58:36 发布人:远客网络
一、JS 邮箱正则表达式
1、/^([0-9A-Za-z\-_\.]+)@([0-9a-z]+\.[a-z]{2,3}(\.[a-z]{2})?)$/g
2、开始必须是一个或者多个单词字符或者是-,加上@,然后又是一个或者多个单词字符或者是-。然后是点“.”和单词字符和-的组合,可以有一个或者多个组合。
3、<script type="text/javascript">
4、var reg=/^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+(.[a-zA-Z0-9_-])+/;
5、var str='test@hotmail.com';
6、document.write(isEmail(str)+'<br/>');
7、var str2='test@sima.vip.com';
8、document.write(isEmail(str2)+'<br/>');
9、var str3='te-st@qq.com.cn';
10、document.write(isEmail(str3)+'<br/>');
11、var str4='te_st@sima.vip.com';
12、document.write(isEmail(str4)+'<br/>');
13、var str5='te.._st@sima.vip.com';
14、document.write(isEmail(str5)+'<br/>');
15、正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
16、许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。
二、邮箱正则表达式+正则基本知识点
1、今天来搞几个邮箱正则表达式,匹配多级域名,包括中文域名
2、从上图可以得出,除去“.”号,域名既有英文(最多是6个字符),也有中文(最多是3个汉字)
3、而现在有很多影子邮箱/百变邮箱,是使用二级域名或者三级域名,所以,我们先列举如下几个邮箱,然后写一个正则表达式,去匹配、判断
4、不管是什么邮箱,确定会有的字符是“@”和至少一个“.”(这里特指最后一个),那么我们就以这两个确定的符号为分界点,将每个邮箱拆分成3段,对每一段进行正则匹配,最终组成整个邮箱的正则匹配。当然进入下一步之前,先理一理基本知识点。
5、定义:一个正则可以匹配的字符串的长度不是固定的,使用量词可以达到这种目的。
6、量词:比如{m, n}:表示连续出现最少 m次,最多 n次;跟在一个字符的后面就表示对该字符的限定。
7、比如邮箱的校验:/^\w+@[a-z0-9]+.[a-z]{2,4}$/,写在了[a-z]后面,表示可以有2到4位的字母
8、又比如手机号的校验:/^1[3456789]\d{9}$/,跟在了\d后面,表示需要出现9个数字
9、定义:正则匹配的字符串对于某一位置上的字符来说,它可以有多种可能,不局限于某一类型,使用字符组可以达到这种目的。
10、字符组:比如[abc],表示该字符是可以字符"a"、"b"、"c"中的任何一个。对于这一位置来说,我们可以有3种可能性。
11、比如手机号的校验:/^1[3456789]\d{9}$/,它在第二个位置,根据一般手机运营商来说,提供手机第二位的数字可以是3到9的任意一个,才符合规范。
12、如果字符组里表示的字符特别多,可以使用范围表示法,用连字符-来省略和缩写。
13、比如邮箱的校验:/^\w+@[a-z0-9]+.[a-z]{2,4}$/,它跟在@后面,根据我们邮箱的规范可知,@后面的 [a-z0-9]+表示:数字0到9和字母a-z中的至少一个字符
14、对于js正则:([a-z]{2,6}|[\u2E80-\u9FFF]{2,3})
15、 js正则的中文汉字正则表达式来源于手册:
16、对于php正则:([a-z]{2,6}|[\x7f-\xff]{6,9})
17、在utf-8编码中,用ASCII码表中的第128~255编码中的3个编码表示一个汉字,这里用十六进制表示
18、当然,php正则匹配邮箱,还可以这样子
19、原理与/^\w+@([\da-z\.-]+)\.([a-z]{2,6}|[\x7f-\xff]{6,9})/类似。
20、最后,上面的几个正则表达式是居于当前市面上现存的域名进行匹配的,下面提供几个更加宽松的邮箱正则匹配
21、原理都相似,可以对照理解下。如有误,欢迎留言区批评指正。
三、js中用正则表达式如何对用户名进行基本验证
^表示开始。$表示结束。例:Regex reg= new Regex(@"^\d{3,4}-\d{7,8}$");\x0d\x0a加了开始结束标记之后,输入的数量和内容必须完全相同才为true(完全匹配)\x0d\x0a(\d,代表数字0-9)(\D,表示不是数字)(\w,表示a-z,A-Z,0-9,_)(\W表示不是上面小w表示的)(\s表示空格。)\x0d\x0a”*“表示0到多个\x0d\x0a“+” 1到多个\x0d\x0a“?” 0个或者1个\x0d\x0a“[ ]“(一个数到另一个数之间)自定义匹配内容\x0d\x0a“|”或者\x0d\x0a“{}”{最小个数,最大个数}次数\x0d\x0a例如:邮箱验证:\x0d\x0aRegex r= new Regex(@"^[\w]+@[\w].[A-Z|a-z]$");\x0d\x0a自己kankan琢磨一下就懂了