>백엔드 개발 >PHP 튜토리얼 >PHP 정규식을 사용하여 입력 문자열이 올바른 이메일 주소인지 확인하는 방법

PHP 정규식을 사용하여 입력 문자열이 올바른 이메일 주소인지 확인하는 방법

王林
王林원래의
2023-06-24 17:03:451231검색

인터넷의 발달로 이메일은 사람들의 일상생활에서 없어서는 안 될 부분이 되었습니다. 웹사이트 개발에서 사용자가 입력한 이메일 주소를 검증하는 것은 필수적이고 일반적인 작업입니다. 이 기사에서는 PHP 정규 표현식을 사용하여 입력 문자열이 올바른 이메일 주소인지 확인하는 방법을 소개합니다.

  1. 정규식에 대해 알아보기

정규식은 문자 패턴을 일치시키는 데 사용되는 도구입니다. PHP에서는 preg_match() 함수를 사용하여 문자열을 정기적으로 일치시킵니다. 구문은 다음과 같습니다.

preg_match($pattern, $subject, $matches);

여기서 $pattern은 정규식이고 $subject는 일치해야 하는 문자열이며 $matches는 일치 결과입니다. 이 함수는 각각 성공적인 일치와 실패를 나타내는 1 또는 0을 반환합니다.

  1. 이메일 주소 형식 지정

이메일 주소를 확인하기 전에 먼저 올바른 이메일 주소 형식이 무엇인지 명확히 해야 합니다. 일반적으로 합법적인 이메일 주소는 다음 요구 사항을 충족해야 합니다.

  • 이메일 주소는 "@" 기호로 두 부분으로 나뉘며 왼쪽 절반은 사용자 이름이고 오른쪽 절반은 메일 서버(도메인 포함)입니다. 이름 및 호스트 이름).
  • 사용자 이름에는 @ 기호를 포함할 수 없으며 마침표 "."로 시작하거나 끝날 수 없습니다.
  • 도메인 이름은 하나 이상의 마침표 "."로 구분된 하나 이상의 문자로 구성됩니다.
  • 마지막 도메인 이름 세그먼트는 "com", "cn", "org" 등을 포함한 최상위 도메인 이름입니다.
  1. 정규식 작성하기

법적 이메일 주소 형식을 이해한 후에는 규칙에 따라 정규식을 작성할 수 있습니다. 다음은 이메일 주소 확인을 위한 일반적인 정규식입니다.

$pattern = '/^[w-.]+@([w-]+.)+[a-zA-Z]{2,4}$/';

그 중 ^는 반드시 이 정규식으로 시작해야 한다는 뜻이고, $는 반드시 이 정규식으로 끝나야 한다는 뜻입니다. [w-.]+는 사용자 이름을 나타내며, 영문자, 숫자, 밑줄, 대시, 마침표가 하나 이상 연속된 문자일 수 있습니다. @는 구분 기호를 나타냅니다. ([w-]+.)+는 여러 문자, 숫자, 밑줄, 대시와 하나 이상의 마침표로 구성된 문자열인 도메인 이름을 나타냅니다. 마지막으로 [a-zA-Z]{2,4}는 최상위 도메인 이름을 나타내며 2~4자만 허용됩니다.

  1. 구현 코드

정규 표현식을 작성한 후 이를 PHP 코드에서 사용하여 이메일 주소를 확인할 수 있습니다. 다음은 preg_match() 함수를 사용하여 입력 문자열을 확인하는 PHP 코드입니다.

$email = $_POST['email'];
$pattern = '/^[w-.]+@([w-]+.)+[a-zA-Z]{2,4}$/';
if (preg_match($pattern, $email)) {
    echo "邮箱地址正确!";
} else {
    echo "邮箱地址不正确!";
}

먼저 $_POST[]를 통해 사용자가 입력한 이메일 주소를 가져와서 $email 변수에 저장합니다. 그런 다음 위의 정규식을 사용하여 입력 문자열이 올바른 이메일 주소인지 확인합니다. 일치하면 "이메일 주소가 정확합니다!"가 출력되고, 그렇지 않으면 "이메일 주소가 올바르지 않습니다!"가 출력됩니다.

  1. 결론

이 글에서는 PHP 정규 표현식을 사용하여 입력 문자열이 올바른 이메일 주소인지 확인하는 방법을 소개합니다. 실제 프로젝트에서는 이메일 주소 확인이 필수적이며 정규식의 일치 규칙과 PHP 기능을 사용하는 것을 익히면 확인 작업을 더 잘 완료하는 데 도움이 될 수 있습니다.

위 내용은 PHP 정규식을 사용하여 입력 문자열이 올바른 이메일 주소인지 확인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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