2015-02-03 8 views
-2

전자 메일이 유효한지 확인하려면 다음 함수를 사용하고 있습니다. 도메인 이름에 하이픈이있는 전자 메일 주소가있는 고객이 있습니다 ([email protected]). 잘못된 전자 메일 주소로 되돌아옵니다. 불행히도, 나는 정규식을 이해하지 못한다. 누군가가 그의 이메일을 수락하기 위해 고칠 수 있도록 도와 줄 수 있습니까?Regex 유효한 전자 메일

function isValidEmail($email) 
{ 
    $regex = "/([a-z0-9_]+|[a-z0-9_]+\.[a-z0-9_]+)@(([a-z0-9]|[a-z0-9]+\.[a-z0-9]+)+\.([a-z]{2,4}))/i"; 

    if(!preg_match($regex, $email)) { 
     return false; } 
    else { 
    return true; 
    } 
} 
+2

이유는 단지 사용하지 [filter_var()] (http://php.net/manual/en/filter.filters.validate.php) 대신 자신의 롤 노력 ? 이메일 주소는 그대로 복잡합니다. 그 (것)들을 유효하게하기 위하여 당신의 자신의 정규식을 쓰는 것을 시도하는 것은 미친 ... –

+0

@ Daagon 그것은 중복을 찾아내는 다만 저희 다만 농부이다처럼 보인다. 편집 : 폐쇄. 중복을 찾기 위해 "시간"을 가져 주셔서 감사합니다. –

+1

@ Fred-ii- 그 특별한 슈퍼 파워. 나는 * "태양 아래 새로운 것은 없다"* 남자 –

답변

5

사용하는 사용자 정의 정규 표현식을 사용하지 마십시오 PHP의 filter_var() 내장 :

function isValidEmail($email) { 
    return filter_var($email, FILTER_VALIDATE_EMAIL); 
} 
+0

감사합니다! 그것에 대해 몰랐습니다. – hunijkah

0
직접이를 다시하려고 귀찮게하지 마십시오

, 이메일 유효성 검사 정규식을 사용하면 매우 복잡 얻을 수 있습니다 . PHP는이 목적으로 사용할 수있는 유용한 함수 filter_var()을 제공합니다.

는 간단하게 사용

if (filter_val($email_address, FILTER_VALIDATE_EMAIL)) { 
    // The email address is valid! 
} 
else 
    // The email address is invalid!