programming/PHP
전화번호 정규식
헤써니
2020. 8. 31. 23:28
<?php
function isPhoneNumber($str) {
$filteringStr = preg_replace("/[^0-9]/","",$str); // 숫자만 남기기 위한 코드
return (preg_match("/^(01[016789]{1})\d{3,4}\d{4}$/", $filteringStr) ? false : true;
}
?>
하나하나 뜯어보기
preg_replace()
preg_replace("[정규식 패턴]" , "[바꿀 패턴]" , "[검색 대상 문자열]");
// 인수를 더 사용할 수 있습니다. 추가 정보는 PHP 공식문서(클릭)를 확인해주세요.
/[^0-9]/
0-9(숫자가 들어간 Text)를 제외한 문자열
$filteringStr = preg_replace("/[^0-9]/","",$str)
$str 중 숫자가 아닌 문자들은 모두 공백으로 바꾸어 $filteringStr에 담습니다.
preg_match()
preg_match("[정규식 패턴]","[검색 대상 문자열]")
// 인수를 더 사용할 수 있습니다. 추가 정보는 PHP 공식문서(클릭)를 확인해주세요.
/^(01[016789]{1})\d{3,4}\d{4}$/
^ : 뒤의 조건을 부정함
(01[016789]{1}) : 01로 시작하고, 그다음 글자는 0,1,6,7,8,9 에 포함하는 글자가 1개
\d{3,4} : 숫자 3개 혹은 4개
\d{4} : 숫자 3개
$ : 입력의 끝을 의미
(preg_match("/^(01[016789]{1})\d{3,4}\d{4}$/", $filteringStr)
preg_match 는 $filteringStr이 정규식 패턴(핸드폰번호 유형이 아닌 경우)에 일치하는 경우 1을 리턴하고 아닌 경우 0을 리턴하고, 오류가 발생한 경우 FALSE를 리턴합니다.
참고사이트
developer.mozilla.org/ko/docs/Web/JavaScript/Guide/정규식#special-negated-character-set