2013-09-28 30 views
2

用下面的代碼的preg_match - 正則表達式錯誤

$regex = "^[_+a-z0-9-]+(\.[_+a-z0-9-]+)*" 
    ."@[a-z0-9-]+(\.[a-z0-9-]{1,})*" 
    ."\.([a-z]{2,}){1}$"; 

    if(!preg_match($regex,$subemail)){ 
     $form->setError($field, "* Email invalid"); 
    } 

    $subemail = stripslashes($subemail); 
} 

我收到以下錯誤

Warning: preg_match() [function.preg-match]: No ending delimiter '^' found 

任何幫助將不勝感激。

+0

即使你會解決您的分隔符的模式將無法在**很多** emailaddresses的:https://emailtester.pieterhordijk.com/test-pattern/NTE – PeeHaa

+0

http://php.net/manual/en/function.filter-var.php – elclanrs

回答

0

現在它認爲^是開始分隔符,因此期待一個又一個在末端。可以使用任何數量的分隔符,如//,或@@和,或<>等下一個使用//作爲其開/閉定界符:

 $regex = "/^[_+a-z0-9-]+(\.[_+a-z0-9-]+)*" 
     ."@[a-z0-9-]+(\.[a-z0-9-]{1,})*" 
     ."\.([a-z]{2,}){1}$/";