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를 활용하면 프로젝트 요구 사항에 맞는 맞춤형 입력 검증 규칙을 손쉽게 구현할 수 있습니다.