2014-10-16 209 views
-4

我希望能幫助驗證PHP中的電子郵件地址。我需要的電子郵件的格式是[email protected].com.ca.org是有效的頂級域名。爲什麼我的電子郵件驗證不起作用

我的功能是:

function validateEmail($email) 
{ 
    $regex = "/[a-zA-Z0-9_-.+][email protected][a-zA-Z0-9-]+.[a-zA-Z]+/"; 
    if (!preg_match($regex, $email)) 
    { 
     return "<li>Email is in wrong format</li>" 
    } 
} 
+0

你是什麼意思的「不工作」?你的腳本是否運行?你有什麼嘗試? – dimo414 2014-10-16 22:52:53

+1

你應該逃避你的第一個字符類的最後一個連字符。也就是說,驗證電子郵件地址是非常困難的,特別是使用RegExp。改爲使用帶'FILTER_VALIDATE_EMAIL'的PHP'filter_var()'函數。 – 2014-10-16 22:53:12

+0

根據你的問題,你的正則表達式應該是:http://regex101.com/r/zF1gI2/2 - 請更清楚你的問題,因爲我認爲這是不正確的... – 2014-10-16 22:54:45

回答

-1

用途:

/[a-zA-Z0-9-_.+][email protected][a-zA-Z0-9-]+.[a-zA-Z]+/ 

/[a-zA-Z0-9_\-.+][email protected][a-zA-Z0-9-]+.[a-zA-Z]+/ 

說 - 後_將使一片混亂,所以無論是逃避它或之前把它_

+0

好吧,確定名稱和姓氏部分,但不是我在@後需要的mohawkcollege。我是新來的PHP,我很困惑與正則表達式。謝謝你的幫助。 – PedroIt 2014-10-16 23:02:07

+0

這不能解決問題... – dimo414 2014-10-16 23:05:21

+0

你的意思是你只驗證mohawkcollege.TLD?試試[a-zA-Z0-9 -_。+] + @ mohawkcollege。[a-zA-Z] + – anhlc 2014-10-16 23:09:08