>  기사  >  백엔드 개발  >  정확한 이메일 검증에 Regex가 충분합니까?

정확한 이메일 검증에 Regex가 충분합니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-14 22:46:02589검색

Is Regex Enough for Accurate Email Validation?

이메일 검증의 정규식 함정

정규식을 사용하여 이메일 주소를 검증하는 것은 까다로운 작업일 수 있으며, 특히 하위 도메인 주소의 경우 더욱 그렇습니다. 이 문제를 해결하기 위해 정규 표현식에만 의존할 때의 한계를 살펴보겠습니다.

정규 표현식 유효성 검사의 한계

이메일 주소의 구문 정확성(예: 현재 상태)을 검증하는 동안 @ 및 .), 정규식은 오타를 설명하고 주소가 실제로 존재하는지 확인하지 못합니다. 이러한 문제를 해결하려면 보다 광범위한 검사가 필요합니다. 즉,

  1. 잘못 입력: 구문상 유효한 이메일 주소라도 잘못 입력될 수 있습니다. 이러한 오류를 배제하려면 수동 확인이 필요합니다.
  2. 존재 확인: verify_email 패키지를 통해 SMTP 서버에 접속하면 이메일 주소의 존재를 확인할 수 있습니다. 그러나 이 접근 방식은 주소가 의도한 수신자에게 속한다는 것을 보장하지 않습니다.

간단한 확인을 권장합니다

정규식 유효성 검사의 한계를 고려하여 기본 확인은 일반적인 사용자 오류를 식별하는 것만으로도 충분한 경우가 많습니다.

[^@]+@[^@]+\.[^@]+

이 정규식은 정확히 하나의 @가 있는지 확인합니다. 기호와 하나 이상의 . @.

코드에서 정규 표현식 사용

위 정규식을 코드에 통합하려면 Python에서 re 모듈을 활용하세요.

import re

if not re.match(r"[^@]+@[^@]+\.[^@]+", email):
    # Handle invalid email address

문자가 두 번 이스케이프되는 것을 방지하기 위해 r 접두사가 붙은 Python의 원시 문자열 리터럴을 사용하는 것에 유의하세요. 복잡한 정규식의 경우 먼저 컴파일하는 것을 고려하세요.

EMAIL_REGEX = re.compile(r"[^@]+@[^@]+\.[^@]+")

if not EMAIL_REGEX.match(email):
    # Handle invalid email address

위 내용은 정확한 이메일 검증에 Regex가 충분합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.