728x90
전화번호가 연속으로 두개가 한 셀에 있을 때 앞번호 1개만 추출하고, 전화번호와 이름이 혼용되어 있을 때 전화번호만 추출하고 싶을 때가 있다.
<?php
$line07 = "011-0001-0800, 010-0001-2981";
$mtelNO = TelNumRegex($line07);
echo preg_replace("/([0-9]{3})([0-9]{3,4})([0-9]{4})$/", "\\1-\\2-\\3", $mtelNO);
echo '<br/><br/>';
$line07 = "홍길동 011-0002-0800";
$mtelNO = TelNumRegex($line07);
echo preg_replace("/([0-9]{3})([0-9]{3,4})([0-9]{4})$/", "\\1-\\2-\\3", $mtelNO);
echo '<br/><br/>';
// 전화번호 정규식 반환 (전화번호 2개가 콤마로 구분되면 앞번호만 추출, 전화번호/성명 혼용이면 전화반호만 추출)
function TelNumRegex($inputNO){
$pattern = '/\d{3}[-]?\d{4}[-]?\d{4}\s?[,]\s?\d{3}[-]?\d{4}[-]?\d{4}/';
preg_match_all($pattern,$inputNO,$output);
if(!empty($output[0])) {
$tempNO = explode(',',$output[0][0]);
$mtelNO = preg_replace("/[^0-9]/", "", $tempNO[0]);
} else {
$mtelNO = preg_replace("/[^0-9]/", "", $inputNO);
}
return $mtelNO;
}
?>
|
패턴 만들기는 https://regexr.com/ 사이트에서 테스트하면서 검증하면 된다.
위의 코드를 다시 수정해서 휴대폰번호만 추출하고, 개수를 여러개 반환하거나 1개만 반환한다는 가정하에 만든 코드이다.
<?php
$line07 = "011-0001-0800, 010-0001-2981";
$mtelNO = TelNumRegex($line07);
echo preg_replace("/([0-9]{3})([0-9]{3,4})([0-9]{4})$/", "\\1-\\2-\\3", $mtelNO);
echo '<br/><br/>';
$line07 = "홍길동 011-0002-0800";
$mtelNO = TelNumRegex($line07);
echo preg_replace("/([0-9]{3})([0-9]{3,4})([0-9]{4})$/", "\\1-\\2-\\3", $mtelNO);
echo '<br/><br/>';
// 전화번호 정규식 반환 (전화번호 2개가 콤마로 구분되면 앞번호만 추출, 전화번호/성명 혼용이면 전화반호만 추출)
function TelNumRegex($inputNO){
$pattern = '/01[01679][-]?\d{4}[-]?\d{4}/';
preg_match_all($pattern,$inputNO,$output);
//echo '<pre>';print_r($output[0]);echo '</pre>';
$mtelNO = preg_replace("/[^0-9]/", "", $output[0][0]);
return $mtelNO;
}
?>
|
728x90
'정규표현식' 카테고리의 다른 글
폰번호, 아이디, 이메일, 성명 등 마스킹처리 (PHP 정규표현식) (0) | 2021.07.28 |
---|---|
55에서 255까지의 범위 정규식 (PHP 정규표현식) (0) | 2021.07.28 |
PHP 정규표현식 특정범위 숫자 찾기 (0) | 2018.06.28 |
정규표현식 개념 및 PHP 정규표현식 연습 ★★★ (0) | 2018.06.26 |
PHP와 정규표현식 정리 및 전화번호에 하이픈(-) 넣기 예제 (0) | 2015.01.05 |