2013-07-12 50 views
-3

我有一個函數(工作),並檢查一個電子郵件地址是否有效。我瞭解它的大部分工作原理,除了實際測試的部分是否有合適的電子郵件。這preg_match如何檢查電子郵件驗證?

這是如何工作的:

if (preg_match("/[a-z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/i", $email)) { 
     $valid_address = true; 
     } else { 
     $valid_address = false; 
     } 
    } 

我真的不明白的preg_match,所以這看起來幾乎是隨機的字符。

+1

如果您認爲該正則表達式不好,請嘗試使用[RFC-compliant one](http://www.ex-parrot.com/pdw/Mail-RFC822-Address.html)查看大小。嘿。 – ceejayoz

回答

4

請勿使用preg_match驗證電子郵件。 PHP有一個內置函數。

filter_var('[email protected]', FILTER_VALIDATE_EMAIL) 

也就是說,preg_match的運營商well documented

+0

很酷。不知道存在。這是一個更大的項目(oscommerce)的一部分,但我可以很容易地改變它。 – Sackling