在做用户注册时,常会用到邮箱/邮件地址的正则表达式。本文列举了几种方案,大家可以根据自己的项目情况,选择最适合的方案。 方案1 (常用) 规则定义如下: 以大写字母[A-Z]、小写字母[a-z]、数字[0-9]、下滑线[_]、减号[-]及点号[.]开头,并需要重复一次至多
在做用户注册时,常会用到邮箱/邮件地址的正则表达式。本文列举了几种方案,大家可以根据自己的项目情况,选择最适合的方案。 方案1 (常用) 规则定义如下:
利用以上规则给出如下正则表达式:
完整测试代码
测试结果: pattern.test('cn42du@163.com') = true; pattern.test('ifat3@sina.com.cn') = true; pattern.test('ifat3.it@163.com') = true; pattern.test('ifat3_-.@42du.cn') = true; pattern.test('ifat3@42du.online') = false; pattern.test('毛三胖@42du.cn') = false; pattern.test('cn42du@163.com') = true; pattern.test('ifat3@sina.com.cn') = true; pattern.test('ifat3.it@163.com') = true; pattern.test('ifat3_-.@42du.cn') = true; pattern.test('ifat3@42du.online') = false; pattern.test('毛三胖@42du.cn') = false; 方案1说明 方案1是最常用的邮件正则表达式验证方案,也适合大多数的应用场景。从以上测试可以看出,该表达式不支持.online及.store结尾的域名。如需兼容这类域名(大于4位),调整正则结尾{2,4}的限制部分即可(例:{2,8})。另一个问题是邮件用户名不能包括中文。 方案2 (修订方案1) 规则补充如下:
上述isEmail()函数列举了常用的11种邮箱域名,大家可以根据需要适当补充或删减。 以上为三胖对邮箱正则表达式的理解和分析,如有不足请大家予以指正。 |
2021-06-04
2019-05-27
2022-10-12
2022-10-12
2019-06-26