>  기사  >  백엔드 개발  >  PHP에서 데이터 유효성 검사에 정규식을 사용하는 방법은 무엇입니까?

PHP에서 데이터 유효성 검사에 정규식을 사용하는 방법은 무엇입니까?

PHPz
PHPz원래의
2023-05-20 12:02:022035검색

PHP 프로그래밍에서 데이터 유효성 검사는 매우 중요한 작업입니다. 외부 입력 데이터(예: 사용자의 양식 제출)를 받으면 데이터를 사용하기 전에 데이터의 형식이 올바른지, 요구 사항을 충족하는지 확인해야 합니다. 매우 실용적인 검증 방법 중 하나는 정규식을 사용하는 것입니다.

정규식은 문자열 일치 패턴을 지정하고 일치 성공 후 해당 값을 반환하는 데 사용할 수 있는 강력한 텍스트 일치 도구입니다. PHP에서 데이터 유효성 검사에 정규식을 사용하면 데이터가 지정된 형식의 요구 사항을 충족하는지 빠르고 간결하게 확인할 수 있습니다.

개요

PHP에서 데이터 유효성 검사를 위해 정규식을 사용하려면 preg_match와 preg_replace라는 두 가지 함수가 필요합니다. 그 중 preg_match는 문자열이 지정된 정규식 패턴과 일치하는지 확인하는 데 사용되고, preg_replace는 정규식과 일치하는 문자열 부분을 바꾸는 데 사용됩니다.

아래에서는 몇 가지 구체적인 예를 사용하여 PHP에서 데이터 유효성 검사에 정규식을 사용하는 방법을 소개합니다.

  1. 휴대폰 번호 확인

현대 사회에서 휴대폰 번호는 사람들의 생활에 없어서는 안될 부분이 되었습니다. 따라서 사용자의 휴대폰 번호 입력을 확인할 때 올바른 형식인지 확인해야 합니다.

중국에서는 휴대폰 번호 형식이 11자리로 구성되며 일반적으로 숫자 1로 시작합니다. 따라서 정규식을 사용하여 문자열이 중국 휴대폰 번호 형식과 일치하는지 확인할 수 있습니다.

$pattern = '/^1d{10}$/';
$phone = '13812345678';

if (preg_match($pattern, $phone)) {
    echo 'Valid phone number';
} else {
    echo 'Invalid phone number';
}

위 코드에서는 / ^1 d {10} $ / 정규식 패턴을 사용하여 휴대폰을 확인합니다. 숫자 숫자가 형식 요구 사항을 충족하는지 여부입니다. 그 중 ^는 문자열의 시작 부분과 일치한다는 의미, $는 문자열의 끝 부분과 일치한다는 의미, d{10}은 10개의 숫자와 일치한다는 의미입니다. 문자열에 포함된 자릿수가 11자 이하인 경우에도 유효하지 않은 휴대전화번호로 감지됩니다.

  1. 이메일 확인

이메일 주소도 일반적인 입력 데이터이므로 유효성 검사를 통해 올바른 형식인지 확인해야 합니다. 정규식을 사용하면 이 작업이 쉬워집니다.

다음은 이메일 주소 확인의 기본 예입니다.

$pattern = '/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}$/';
$email = 'test@example.com';

if (preg_match($pattern, $email)) {
    echo 'Valid email address';
} else {
    echo 'Invalid email address';
}

위 코드에서는 정규식 패턴 /^[a-zA-Z0-9._%+-]+@[a -zA를 사용했습니다. -Z0-9.-]+.[a-zA-Z]{2,}$/는 이메일 주소와 일치합니다. 그 중 +는 이전 내용과 1회 이상 일치한다는 뜻이고, [a-zA-Z0-9._%+-]는 문자, 숫자, 특정 기호가 일치한다는 뜻, 는 실제 마침표와 일치한다는 뜻, {2,}는 일치하는 뜻을 나타낸다. 2글자 이상.

이메일 주소에는 밑줄, 느낌표, 파운드 기호와 같은 다른 특수 기호가 포함될 수도 있다는 점은 주목할 가치가 있습니다. 더 많은 특수 기호를 지원해야 하는 경우 정규식 패턴에 추가할 수 있습니다.

  1. 확인 날짜

날짜도 일반적인 입력 데이터입니다. 이벤트나 진행되는 시간을 기록해야 하는 경우 날짜를 확인해야 합니다. PHP에서는 정규식을 사용하여 날짜 형식을 확인할 수 있습니다.

다음은 날짜 형식 확인의 예입니다.

$pattern = '/^d{4}-d{1,2}-d{1,2}$/';
$date = '2021-11-11';

if (preg_match($pattern, $date)) {
    echo 'Valid date format';
} else {
    echo 'Invalid date format';
}

위 코드에서는 정규식 패턴 /^d{4}-d{1,2}-d{1,2}$/를 사용하여 일치시켰습니다. 날짜 형식. 그 중 d는 숫자, {4}는 일치하는 4자리 숫자, -는 대시 일치를 나타냅니다. 여기서 월과 일의 자릿수는 1자리 또는 2자리일 수 있으므로 d{1,2}를 사용하여 가능한 자릿수를 나타냅니다.

  1. 인증 비밀번호

비밀번호 역시 공용 입력 데이터이므로 보안이 보장되어야 합니다. PHP에서 비밀번호를 확인하는 방법 중 하나는 정규식을 사용하는 것입니다. 비밀번호는 최소한 하나의 대문자, 하나의 소문자, 하나의 숫자, 하나의 특수 기호를 포함해야 하며 길이는 8~16자 사이여야 합니다.

비밀번호를 확인하는 정규식 예는 다음과 같습니다.

$pattern = '/^(?=.*[a-z])(?=.*[A-Z])(?=.*d)(?=.*[@$!%*?&_])[A-Za-zd@$!%*?&_]{8,16}$/';
$password = 'P@ssw0rd';

if (preg_match($pattern, $password)) {
    echo 'Valid password';
} else {
    echo 'Invalid password';
}

위 코드에서 정규식 패턴 / ^(?=.[a-z])(?=.[A-Z])( ?=를 사용했습니다. .d)(?=.[@$!%*?&_])[A-Za-zd@$!%?&_]{8,16}$/를 비밀번호와 일치시킵니다. 그 중 (?=.*[a-z])는 1개 이상의 소문자를 의미하고, (?=.*[A-Z])는 1개 이상의 대문자를 의미하고, (?=.*d)는 1개 이상의 숫자를 의미하며, (? = .*[@$!%?&_])는 하나 이상의 특수 문자가 있음을 의미하고, [A-Za-zd@$!%*?&_]{8,16}은 비밀번호 길이가 8에서 16 사이임을 의미합니다. 문자.

요약

이 기사에서는 PHP에서 데이터 유효성 검사를 위해 정규식을 사용하는 방법을 살펴보았습니다. 정규식을 통해 휴대폰 인증, 이메일 인증, 날짜 인증, 비밀번호 인증 등의 작업을 쉽게 구현할 수 있습니다. 정규식은 PHP 프로그램에서 데이터 유효성 검사가 필요한 경우 매우 유용한 도구가 될 수 있습니다. 정규식의 기본을 이해하고 익히면 프로그램을 보다 효율적으로 작성하는 데 도움이 됩니다.

위 내용은 PHP에서 데이터 유효성 검사에 정규식을 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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