2013-05-28 228 views

回答

5

我建議每個人都對HTML5電子郵件驗證規範進行標準化,這與RFC822不同,它不允許使用幾個很少使用的電子郵件地址功能(如評論!),但可以通過正則表達式來識別。

下面是HTML5規範的電子郵件驗證的部分: http://www.whatwg.org/specs/web-apps/current-work/multipage/states-of-the-type-attribute.html#e-mail-state-%28type=email%29

這是正則表達式:

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

這是我粘貼相同的模式,但我並沒有將其標記爲代碼,以便它逃脫了。如果它仍然沒有驗證電子郵件地址,這是W3C修復:) –

+0

稍晚,但...它不工作 - 它是's @ s「字符串的有效。 –

3

我使用此模式:validate-email-address-in-javascript。 (刪除斜線/分隔符並添加Dart分隔符:r'')。

bool isEmail(String em) { 

    String p = r'^(([^<>()[\]\\.,;:\[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,}))$'; 

    RegExp regExp = new RegExp(p); 

    return regExp.hasMatch(em); 
} 

編輯:

有關電子郵件驗證的更多信息,看看這些帖子:dominicsayers.comregular-expressions.info。該工具也可能非常有用:gskinner RegExr

編輯:賈斯汀有一個更好的。我正在使用他提出的模式。