Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP FILTER_VALIDATE_REGEXP 상수 – 정규표현식 검증 완벽 가이드


FILTER_VALIDATE_REGEXP 상수는 주어진 값이 펄(Perl) 호환 정규 표현식(PCRE)과 일치하는지 검증할 때 사용되는 PHP 필터 상수입니다. 주로 filter_var() 함수와 함께 사용되며, 이메일·URL 같은 기본 제공 필터로 처리하기 어려운 사용자 지정 형식 검증에 유용합니다.

옵션(Options)

  • regexp − 검증 기준으로 사용할 정규 표현식입니다. 반드시 유효한 PCRE 패턴 형식(/패턴/플래그)으로 작성해야 하며, 이 옵션은 연관 배열 options 안에 중첩하여 전달합니다.

반환값(Return)

FILTER_VALIDATE_REGEXP 자체는 상수이므로 별도의 값을 반환하지 않습니다. 실제 검증 결과는 filter_var() 함수가 판단하며, 값이 정규 표현식과 일치하면 원래 값을 그대로 반환하고 일치하지 않으면 false를 반환합니다.

사용 예제

<?php
   $val = "example.com";
   $res = array("options" => array("regexp" => "/^ex(.*)/"));

   if(filter_var($val, FILTER_VALIDATE_REGEXP, $res)) {
      echo "Matched String!";
   } else {
      echo "Not a Matched String!";
   }
?>

위 코드에서는 문자열 "example.com"이 정규 표현식 /^ex(.*)/, 즉 'ex'로 시작하는지 여부를 검사합니다. 해당 문자열은 'ex'로 시작하므로 조건문이 참이 됩니다.

실행 결과는 다음과 같습니다.

Matched String!

추가 예제 – 특정 형식 검증

예를 들어, 알파벳 소문자만 허용하는 사용자 아이디를 검증하려면 다음과 같이 작성할 수 있습니다.

<?php
   $userId = "john_doe123";
   $opts = array("options" => array("regexp" => "/^[a-z]+$/"));

   if(filter_var($userId, FILTER_VALIDATE_REGEXP, $opts)) {
      echo "유효한 아이디입니다.";
   } else {
      echo "아이디는 영문 소문자만 사용할 수 있습니다.";
   }
?>

이처럼 FILTER_VALIDATE_REGEXP를 활용하면 프로젝트 요구 사항에 맞는 맞춤형 입력 검증 규칙을 손쉽게 구현할 수 있습니다.