正则邮箱_自己写一个通用的邮箱正则表达式
今天把正則又復習了一遍,為了加深記憶,自己寫一個郵箱的正則表達式
咱們先來看幾個合法的郵箱地址
hd33322@nat123.com
maksim.kim.82@d-link.ua
vova_lazarev1969@jaagers.com
b4-service.s@zhaopinmail.com
通過觀察上面幾個例子,不難看出所有郵箱地址都分為兩個部分,@左邊是一部分,右邊為令一部分,那么我們可以分成兩部分來書寫正則表達式
左邊一般是由數字"[0-9]"、字母"[a-zA-Z]"、下劃線"_"、減號"-"、英文句號"."組成,似乎沒
有明確限定長度,而且不是以下劃線"_"、減號"-"、英文句號"."來開頭或者結尾的,那么左邊
部分可以寫成 [0-9a-zA-Z]+([.-_]*[0-9a-zA-Z]+)*
右邊是域名部分,除字母數字英文句號外,也可能包含下劃線和減號,而且還有多級域名,但
最后的頂級域名比較固定,一般是2到6位字母結束,例
如".cn"、".com"、".org"、".museum"等,故正則可以表示為
([0-9a-zA-Z]+[-_]*[0-9a-zA-Z]+.)+[0-9a-zA-Z]{2,6}
兩邊合并,整個表達式為: /^[0-9a-zA-Z]+([.-_]*[0-9a-zA-Z]+)*@([0-9a-zA-Z]+[-_]*[0-9a-zA-Z]+.)+[0-9a-zA-Z]{2,6}$/
要注意的是,減號"-"在正則里是連字符,英文句號"."是元字符,所以為了代表他們的字面意
思,要加上反斜杠""進行轉義
測試一下
let emails = ['hd33322@nat123.com','maksim.kim.82@d-link.ua','vova_lazarev1969@jaagers.com','b4-service.s@zhaopinmail.com' ] const regulation = /^[0-9a-zA-Z]+([.-_]*[0-9a-zA-Z]+)*@([0-9a-zA-Z]+[-_]*[0-9a-zA-Z]+.)+[0-9a-zA-Z]{2,6}$/ console.log(emails.every(email => regulation.test(email))) //true總結
以上是生活随笔為你收集整理的正则邮箱_自己写一个通用的邮箱正则表达式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一台机器起多个filebeat_全自动多
- 下一篇: 如何通过网络将文件传输到嵌入式设备_嵌入