我知道這裏有很多關於電子郵件驗證和特定RegEx的問題。我想知道哪些最佳做法是用於驗證有關[email protected]
技巧的電子郵件(details here)。我對JavaScript驗證當前的正則表達式如下所示,但它不支持額外的+
手柄:電子郵件地址驗證的最佳做法(包括Gmail中的+地址)
/^([a-zA-Z0-9_.-])[email protected](([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})+$/
是否有支持額外+
任何其他服務?我應該允許在地址中使用+
,還是應該將RegEx更改爲僅允許將gmail.com
或googlemail.com
作爲域的電子郵件地址?如果是這樣,RegEx會改變什麼?
更新: 感謝大家指出+
是根據規範有效。我不知道這一點,現在做未來。對於那些說甚至使用RegEx來驗證它的人來說,我的理由完全基於我正在創建的創意設計。我們客戶的設計在模糊的電子郵件地址輸入旁邊放置了綠色的支票或紅色的X.該圖標表示它是否是有效的電子郵件地址,因此我必須使用一些JS來驗證它。
這是很難一招時,它的電子郵件標準的一部分,一個非常不錯的文章。 – tloach 2009-12-09 14:06:12
請勿使用RegEx進行電子郵件驗證,除了捕獲明顯的錯誤類型。只需向用戶發送帶有「激活」鏈接的電子郵件。沒有用於電子郵件驗證的foolproog正則表達式。至少沒有一張適合A4紙,即使以小而易讀的字體打印;-)(http://www.regular-expressions.info/email.html) – Duroth 2009-12-09 14:07:57
@tloach我認爲這是一個騙局如果不是所有的電子郵件服務都支持這種方式,那麼無論'+'後面的部分如何,都會將電子郵件發送到句柄的第一部分 - 我甚至不知道它是標準的一部分。 – 2009-12-09 14:11:52