在大佬的学习JavaScript这一篇就够了这篇文章的 3.6.7.2、检查邮箱号 小节中提到了
var emailStr = "abc.def@163.com";
var emailReg = /^\w{3,}(\.\w+)*@[A-z0-9]+(\.[A-z]{2,5}){1,2}$/;
console.log(emailReg.test(emailStr)); //true
那么 /^\w{3,}(.\w+)*@[A-z0-9]+(.[A-z]{2,5}){1,2}$/ 该如何理解呢?
我们先引用大佬罗列出来的部分知识点
{n}
:正好出现n次
{m,}
:出现m次及以上
{m,n}
:出现m-n次
+
:至少一个,相当于{1,}
*
:0个或多个,相当于{0,}
?
:0个或1个,相当于{0,1}
\w
:任意字母、数字、下划线_,相当于[A-z0-9_]
\.
:表示.
\\
:表示\
/ 是正则表达式开始和结束的标记, ^ :表示开头,$ :表示结尾,剩下部分我们一点点分析
\w{3,}(\.\w+)*@[A-z0-9]+(\.[A-z]{2,5}){1,2}
\w{3,} :任意字母、数字、下划线_出现3次及以上
(\.\w+)*:(一个 . 和 至少1个任意字母、数字、下划线_)出现0次或多次
@:一个@
[A-z0-9]+:任意字母数字出现至少一次
\.[A-z]{2,5}:一个 . 和 2到5个任意字母
(\.[A-z]{2,5}){1,2}:(一个 . 和 2到5个任意字母)出现1-2次
案例中 abc.def@163.com 符合条件