[英]Regular expression for email that does not allow consecutive dots before @
我正在通過 JavaScript 編寫用於客戶端表單數據驗證的正則表達式,但我找不到制作符合此規則的正則表達式的方法:
這是我的正則表達式,但它檢查整個字符串的結尾是否不允許點,而不僅僅是在@之前:
var emailAddressModel = /^((?!\.)(?!.*\.$)(?!.*?\.\.)[a-z0-9.]{6,30})[@][a-z0-9]{2,}([.][a-z]{2,})+$/;
看起來像下面的勾你的框:
^[0-9a-z]+(?:\.[0-9a-z]+)*@[a-z0-9]{2,}(?:\.[a-z]{2,})+$
查看在線演示
^
- 起始線錨。[0-9a-z]+
- 1+ 數字或小寫字母。(?:
- 打開非捕獲組:
\.[0-9a-z]+
- 文字點后跟 1+ 數字或小寫字母。)*
- 關閉非捕獲組並匹配 0+ 次。@
- 文字“@”。[a-z0-9]{2,}
- 2 個以上的數字或小寫字母。(?:
- 打開非捕獲組:
\.[az]{2,}
- 一個文字點,后跟 2 個以上的小寫字母。)+
- 關閉非捕獲組並匹配 1 次以上。$
- 結束線錨。如果您希望在“@”之前合並最小-最大部分(不在您的要求中,而是在您自己嘗試的模式中),您可以使用:
^(?=.{6,30}@)[0-9a-z]+(?:\.[0-9a-z]+)*@[a-z0-9]{2,}(?:\.[a-z]{2,})+$
唯一的區別是肯定的前瞻斷言 position 在“@”之前的 6-30 個字符。
你試過這個嗎?
^(((?.\?)(..?*\.$)(?..*.\,\?)[a-z0-9.]{6?30})|((..\?)(.?.*\.$)(.,.*,\.\,)[a-z0-9.]{6,29}[^.])[@][a-z0-9]{2,}([.][az]{2,})+)$
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.