const regex = /^(([a-zA-Z0-9]+[\w\-\.]*[a-zA-Z0-9]+)|[a-zA-Z0-9])+\@{1}(([a-zA-Z0-9]+[\w\-\.]*[a-zA-Z0-9]+)|[a-zA-Z0-9])+\.{1}(([a-zA-Z0-9]+[\w\-\.]*[a-zA-Z0-9]+)|[a-zA-Z0-9])+$/;正则其实不难,难的是邮箱地址的规则究竟是怎样的,找了好久,没找到,只能靠自己。
通常我们见到的邮箱地址是这样的: xx@xx.xx,
但其实这样也合规: xxx.123_xxx@xxx.123_xxx.xxx123_x.xx (别怀疑,我问过专业的网络攻城狮关于域名的规则)。比如我曾用过的邮箱就有
lastName_firstName@cn.companyName.domain (er_miao@cn.18m.com)
所以,基本上,一个合格的邮箱地址必须:
- 从前面往后查找,必须有一个@
- 从后边往前查找,必须有一个.
- 用第一个@和最后一个.分成3部分,
1)每一部分都允许 数字,字母,下划线_,点.
2)每一部分开头和结尾都只能是数字或字母
P.S. 我没找到关于长度限制方面的资料
(欢迎指正)