js常用正则表达式—邮箱(Email)

常规用法

      // 检查邮箱格式,
      let reg = /\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/
      if (!reg.test(this.newEmail)) {
        noticeMessage.handleAlert("请检查邮箱格式是否正确","error")
        return ;
      }

只允许英文字母、数字、下划线、英文句号、以及中划线组成

举例:[email protected]
分析邮件名称部分:

  • 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_-][email protected][a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$

名称允许汉字、字母、数字,域名只允许英文域名

举例:[email protected]

分析邮件名称部分:

  • 汉字在正则表示为[\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][email protected][a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$

版权声明:
作者:北忘山
文章:js常用正则表达式—邮箱(Email)
链接:https://www.beiwangshan.com/archives/153.html
来源:beiwangshan.com
文章版权归作者所有,未经允许请勿转载。
THE END
分享
二维码
打赏
< <上一篇
下一篇>>