전화번호에 하이픈(-) 넣기

by 조쉬 posted Apr 14, 2015
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

전화번호에 하이픈(-)을 넣어서 보기 좋게 정렬을 할 필요가 있을 경우 아래 함수를 이용하면 편하다.


<?php
// 전화번호의 숫자만 취한 후 중간에 하이픈(-)을 넣는다.
function add_hyphen($tel)
{
    $tel = preg_replace("/[^0-9]/", "", $tel);    // 숫자 이외 제거
    if (substr($tel,0,2)=='02')
        return preg_replace("/([0-9]{2})([0-9]{3,4})([0-9]{4})$/", "\\1-\\2-\\3", $tel);
    else if (strlen($tel)=='8' && (substr($tel,0,2)=='15' || substr($tel,0,2)=='16' || substr($tel,0,2)=='18'))
        // 지능망 번호이면
        return preg_replace("/([0-9]{4})([0-9]{4})$/", "\\1-\\2", $tel);
    else
        return preg_replace("/([0-9]{3})([0-9]{3,4})([0-9]{4})$/", "\\1-\\2-\\3", $tel);
}
?>


substr($원본문자열, $찾을위치, $갯수)
 -  $원본문자열에서 $찾을위치의 인덱스로부터 $갯수 만큼의 문자열을 잘라서 반환


정규식에서 괄호()를 사용하면 순서대로 $1, $2, $3, ... 와 같이 불러서 사용 할 수 있다.
(^02.{0}|^01.{1}|[0-9]{3})
  - ^02.{0}   : ^는 정규식에서 시작을 의미하며 "02"로 시작 하는 경우를 말한다.
  -  "."은 문자 하나를 나타내는데 바로 뒤 괄호가 {0}이니 결과로는 "02"만 추출 한다는 내용
  - | 는 '또는' 의 의미
  - ^01.{1}   : 위와 마찬가지로 "01"로 시작하는 경우
  - .{1} 이므로 이후 1자리만 추출 즉 01X 로 시작하는 휴대폰을 의미

([0-9]{4}) : 바로 0-9까지의 숫자를 4자리 가져온다.