2017-04-25 24 views
-3

我想創建自定義的電子郵件正則表達式定製的電子郵件正則表達式

[首頁] @ [秒]。[第三]

  • 允許的標誌是數字,字母和一些特殊字符(我已經做到了)
  • One @
  • First + second的長度爲1到20個字符。
  • 電子郵件不能以點開始或結束。相鄰的兩個或多個點也不允許使用 。
  • 第三個字符串長度爲2或3個字符。

這是我到目前爲止有:

^(?!\.)(?=[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-][email protected][a-zA-Z0-9]).{2,21}(?:\.[a-zA-Z0-9].{2,3})$ 

不幸的是,我希望這是行不通的。感謝您的任何提示。

比如我可以彼此相鄰添加多個點: 測試... [email protected]

+0

你爲什麼說這不起作用?你嘗試了什麼輸入和輸出是什麼? – Alfabravo

+0

好吧,多個點是一個有效的電子郵件值,有什麼問題? – zmo

+0

[使用正則表達式驗證電子郵件地址](http:// stackoverflow。com/questions/201323/using-a-regular-expression-to-validate-an-email-address) – Amy

回答

1

永遠不要寫一個正則表達式來檢查電子郵件。你永遠不會做對。舉個例子你說:

允許的跡象數字,字母和一些特殊字符(我已經做到了)

這是極其錯誤的,因爲你是那麼不包括Unicode字符像å或ţ這是有效的。我也很確定你不知道@是電子郵件第一部分中的有效值。

第三個字符串長度爲2或3個字符。

約選配以下頂級域名是什麼:.info.ninja.website.space

所以,請不要。

供參考:

+0

這就是爲什麼我在標題「自定義電子郵件」中說過的原因。它不必遵守通用標準。無論如何感謝您的回答。 – Knight

0

以下的正則表達式可以幫助你。

^(([^<>()\[\]\\.,;:\[email protected]"]+(\.[^<>()\[\]\\.,;:\[email protected]"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,3}))$ 

請閱讀@zmo發佈的答案。

+0

我說的一個案例:這個正則表達式不匹配'foo @ example.website'或多個點事物'foo ..... bar @ example.com',它們都是完全有效的電子郵件地址。 – zmo

相關問題