货物运输东莞网站建设,网页设计免费模板参考网页,怀化网站定制,公司网站功能模块常用正则表达式—邮箱#xff08;Email#xff09;
要验证一个字符串是否为邮箱的话#xff0c;首先要了解邮箱账号的格式。我尝试过在网上找出一个标准的格式#xff0c;但是很遗憾我没有找到。我也尝试使用RFC标准来判断邮箱的格式#xff0c;但是也没有结果。网上些博…常用正则表达式—邮箱Email
要验证一个字符串是否为邮箱的话首先要了解邮箱账号的格式。我尝试过在网上找出一个标准的格式但是很遗憾我没有找到。我也尝试使用RFC标准来判断邮箱的格式但是也没有结果。网上些博客说不应该使用RFC标准来验证邮箱是否合法有兴趣的可以看看“is this email valid?”和“Don’t RFC-Validate Email Addresses”。据了解【参考】现在用中文命名的邮箱也合法了比如“杨元庆联想.中国”。
虽然没有统一的邮箱账号格式但是所有邮箱都符合“名称域名”的规律。对于名称和域名的字符限制我们可以根据项目的情况定义一个比如只允许有英文、数字、下划线等组成。下面举例实现一些验证邮箱格式的正则表达式。
实例1、只允许英文字母、数字、下划线、英文句号、以及中划线组成
举例zhangsan-001gmail.com
分析邮件名称部分
26个大小写英文字母表示为a-zA-Z 数字表示为0-9 下划线表示为_ 中划线表示为- 由于名称是由若干个字母、数字、下划线和中划线组成所以需要用到表示多次出现
根据以上条件得出邮件名称表达式[a-zA-Z0-9_-] 分析域名部分
一般域名的规律为“[N级域名][三级域名.]二级域名.顶级域名”比如“qq.com”、“www.qq.com”、“mp.weixin.qq.com”、“12-34.com.cn”分析可得域名类似“** .** .** .”组成。“”部分可以表示为[a-zA-Z0-9_-]
“.”部分可以表示为.[a-zA-Z0-9_-]多个“.”可以表示为(.[a-zA-Z0-9_-])
综上所述域名部分可以表示为[a-zA-Z0-9_-](.[a-zA-Z0-9_-])
最终表达式由于邮箱的基本格式为“名称域名”需要使用“^”匹配邮箱的开始部分用“$”匹配邮箱结束部分以保证邮箱前后不能有其他字符所以最终邮箱的正则表达式为
^[a-zA-Z0-9_-][a-zA-Z0-9_-](.[a-zA-Z0-9_-])$实例2、名称允许汉字、字母、数字域名只允许英文域名
举例张三001Abclenovo.com.cn
分析邮件名称部分
汉字在正则表示为[\u4e00-\u9fa5] 字母和数字表示为A-Za-z0-9 通过分析得出邮件名称部分表达式为[A-Za-z0-9\u4e00-\u9fa5] 分析邮件域名部分
邮件部分可以参考实例1中的分析域名部分。 得出域名部分的表达式为[a-zA-Z0-9_-](.[a-zA-Z0-9_-]) 最终表达式我们用符号将邮箱的名称和域名拼接起来因此完整的邮箱表达式为
^[A-Za-z0-9\u4e00-\u9fa5][a-zA-Z0-9_-](.[a-zA-Z0-9_-])$