1. 程式人生 > 實用技巧 >常用郵箱正則表示式

常用郵箱正則表示式

例項1、只允許英文字母、數字、下劃線、英文句號、以及中劃線組成

舉例:[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_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$

例項2、名稱允許漢字、字母、數字,域名只允許英文域名

舉例:楊元慶[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]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$