我搜索了一段時間,只發現了其他RFC標準的現成可用解決方案。另外,我認爲函數filter_var中的PHP構建也不適合我,因爲(根據PHP.net),FILTER_VALIDATE_EMAIL常量僅檢查RFC 822地址。郵件驗證符合RFC 2821
我只找到這個JAVA正則表達式:
(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])
但是,試圖將這個mosnter轉化爲PHP與我的業餘Java的技巧之前,我寧願想問問這裏的論壇..
最多現在我用下面的(不完全)的正則表達式:
/^[a-zA-Z0-9-\!\\\\\$\&\*\=\^\`\|\~\#\%\'\+\/\?\_\{\}]{2,}[@][a-zA-Z0-9-]{2,}\.[a-zA-Z]{2,}$/
什麼是適當的正則表達式根據檢查電子郵件地址RFC 282 1?
發送驗證碼到那個電子郵件並且由他們驗證是唯一真正地工作的方式 –
正如@NullPoiиteя所說的那樣,發送驗證通過電子郵件代碼正則表達式不會阻止用戶提供一個儘管有效的電子郵件地址,但它可能完全是虛假的。 – npinti
我同意NullPoiиte?評論和以前發送電子郵件,您可以檢查是否存在該域的MX條目,因爲如果它不存在,電子郵件發送肯定會失敗。這可以使用函數'getmxrr'進行測試http://php.net/getmxrr – mmm