Programing/PHP

PHP 이메일 유효성 검사

Dongkkase 2025. 4. 22. 09:05
반응형

연관글

2025.04.22 - [Programing/javascript] - javascript 이메일 유효성 검사

2019.01.05 - [Programing/PHP] - PHP 정규식 이메일 유효성 검사 글의 코드가 개선되었습니다.

2025.04.21 - [Programing/javascript] - 이메일 입력 필드를 위한 한글 및 공백 제거 jQuery 같이 보면 좋은 글

 

사용자가 입력하는 이메일 주소가 형식에 맞는지를 검사하는 기능은 대부분의 회원가입, 로그인, 문의폼 등에 필수적으로 포함됩니다. PHP에서도 정규표현식을 통해 이 기능을 간단하게 구현할 수 있습니다. 본 글에서는 PHP로 작성된 isValidEmail 함수의 동작 방식과 정규표현식의 의미를 정리합니다.


✨ 함수 설명

function isValidEmail($email) {
    return preg_match('/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/', $email) === 1;
}

✨ 정규표현식 분석

^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$
  • ^ : 문자열 시작
  • [a-zA-Z0-9._%+-]+ : 사용자명 부분. 영문 대소문자, 숫자, 특수문자 일부 허용
  • @ : 반드시 @ 포함
  • [a-zA-Z0-9.-]+ : 도메인 이름. 하이픈과 점 포함 가능
  • \. : 마지막 도메인을 위한 점(.) 문자
  • [a-zA-Z]{2,} : 최상위 도메인(TLD)은 영문자 최소 2자리 이상 (com, net, kr 등)
  • $ : 문자열 끝

✨ 사용 예시

isValidEmail("test@example.com");       // true
isValidEmail("user.name123@domain.co"); // true
isValidEmail("invalid_email@com");      // false (최상위 도메인 짧음)
isValidEmail("@example.com");           // false (사용자명 없음)
isValidEmail("test@.com");              // false (도메인 이름 없음)

✨ 활용 팁

  • 이 정규식은 실용적인 형식을 기준으로 하며, 실제 이메일 표준(RFC 5322)을 100% 따르지는 않습니다.
  • PHP의 filter_var($email, FILTER_VALIDATE_EMAIL)를 함께 사용하면 좀 더 안정적인 검증이 가능합니다.
  • 프론트엔드에서도 동일한 정규표현식을 적용해 UX를 개선할 수 있습니다.

✨ 결론

PHP에서의 isValidEmail 함수는 이메일 주소의 일반적인 형식을 검증하기 위한 간결하고 효율적인 유틸리티입니다. 서버 단에서 사용자 입력을 빠르게 필터링하고, 백엔드의 보안 및 정확성을 높이는 데 도움을 줄 수 있습니다.


반응형