티스토리 뷰
전화번호를 다루는 프로그래밍을 하다보면 포맷이 다른 경우가 많습니다.
그래서 중간에 )나 -가 들어가 있는 경우는 그대로 두고, 숫자만 있는 경우 포맷을 변경해서 -를 추가하는 javascript를 구성해 봤습니다.
즉, 다음과 같은 형태로 처리 된다고 보시면 됩니다.
이와 같은 작업을 하기 위해서 두가지 방법이 있습니다.
전체 자리수를 확인하고 if ~ else를 통해서 경우의 수를 모두 처리하는 방법이겠죠.
그런데 좀 세련되어 보이지 않습니다.
그래서 정규식(Regular Expression)을 사용해 보기로 하겠습니다.
구성한 예제는 다음과 같습니다.
상당히 간단하게 되어 있는 것 같죠.. ^^
이해하지 못하고 사용하는 것은 본인 소스가 아니라고 봐야 합니다.
그래서 간단히 위 소스를 설명하도록 하지요..
정규식에서 괄호()를 사용하면 순서대로 $1, $2, $3... 와 같이 불러서 사용할 수 있습니다.
위 정규식을 살펴보면 괄호가 3개 있는 것을 알 수 있습니다.
먼저 맨 뒤 괄호부터 보시죠..
([0-9]{4})
바로 0~9까지의 숫자를 4자리 가져온다는 겁니다.
실제 전화번호의 마지막 뒷자리는 4자리로 구성되어 있습니다.
이어서 중간 부분을 살펴보시죠..
([0-9]*)
0~9까지의 숫자 나머지 전부를 가져오라는 겁니다.
즉, 전화번호의 앞부분과 맨 뒷부분을 식별하고 나머지는 중간 자리로 판단한다는 것이죠..
그럼.. 가장 복잡한 앞부분을 살펴보도록 하겠습니다.
(^02.{0}|^01.{1}|[0-9]{3})
복잡해 보이지만 하나씩 풀어보면 쉽습니다.
^02.{0} : ^는 정규식에서 시작을 의미하죠.. 02로 시작할 경우이구요.. "."은 문자 하나를 나타내는데.. {0}이니 이 문장은 "02"만 추출하겠다는 겁니다.
^01.{1} : 마찬가지로 01로 시작하는 것이고 .{1} 이므로 이후 1자리까지 추출한다는 것이죠.. 01x로 시작하는 휴대폰을 의미합니다.
[0-9]{3} : 0~9까지 숫자 중 3자리만 추출한다는 것입니다.
이 세 가지 경우를 "|"로 연결하고 있으므로 셋 중의 하나를 선택한다고 보시면 됩니다.
이렇게 하면 세 가지 숫자가 나오고 이것을 -로 연결하라는 것이 위 정규식의 의미가 되겠죠.. ^^
PHP와 같은 곳에서도 직접 정규식을 사용할 수 있으므로 다음과 같이 사용하면 바로 전화번호를 변경할 수 있겠네요..
preg_replace() 함수가 PHP에서 정규식을 통해 문자열을 치환하는 것이네요~
그럼. 즐프하세요 ^^
그래서 중간에 )나 -가 들어가 있는 경우는 그대로 두고, 숫자만 있는 경우 포맷을 변경해서 -를 추가하는 javascript를 구성해 봤습니다.
즉, 다음과 같은 형태로 처리 된다고 보시면 됩니다.
021112222 -> 02-111-2222
03111112222 -> 031-1111-2222
0101112222 -> 010-111-2222
이와 같은 작업을 하기 위해서 두가지 방법이 있습니다.
전체 자리수를 확인하고 if ~ else를 통해서 경우의 수를 모두 처리하는 방법이겠죠.
그런데 좀 세련되어 보이지 않습니다.
그래서 정규식(Regular Expression)을 사용해 보기로 하겠습니다.
구성한 예제는 다음과 같습니다.
상당히 간단하게 되어 있는 것 같죠.. ^^
이해하지 못하고 사용하는 것은 본인 소스가 아니라고 봐야 합니다.
그래서 간단히 위 소스를 설명하도록 하지요..
정규식에서 괄호()를 사용하면 순서대로 $1, $2, $3... 와 같이 불러서 사용할 수 있습니다.
위 정규식을 살펴보면 괄호가 3개 있는 것을 알 수 있습니다.
먼저 맨 뒤 괄호부터 보시죠..
([0-9]{4})
바로 0~9까지의 숫자를 4자리 가져온다는 겁니다.
실제 전화번호의 마지막 뒷자리는 4자리로 구성되어 있습니다.
이어서 중간 부분을 살펴보시죠..
([0-9]*)
0~9까지의 숫자 나머지 전부를 가져오라는 겁니다.
즉, 전화번호의 앞부분과 맨 뒷부분을 식별하고 나머지는 중간 자리로 판단한다는 것이죠..
그럼.. 가장 복잡한 앞부분을 살펴보도록 하겠습니다.
(^02.{0}|^01.{1}|[0-9]{3})
복잡해 보이지만 하나씩 풀어보면 쉽습니다.
^02.{0} : ^는 정규식에서 시작을 의미하죠.. 02로 시작할 경우이구요.. "."은 문자 하나를 나타내는데.. {0}이니 이 문장은 "02"만 추출하겠다는 겁니다.
^01.{1} : 마찬가지로 01로 시작하는 것이고 .{1} 이므로 이후 1자리까지 추출한다는 것이죠.. 01x로 시작하는 휴대폰을 의미합니다.
[0-9]{3} : 0~9까지 숫자 중 3자리만 추출한다는 것입니다.
이 세 가지 경우를 "|"로 연결하고 있으므로 셋 중의 하나를 선택한다고 보시면 됩니다.
이렇게 하면 세 가지 숫자가 나오고 이것을 -로 연결하라는 것이 위 정규식의 의미가 되겠죠.. ^^
PHP와 같은 곳에서도 직접 정규식을 사용할 수 있으므로 다음과 같이 사용하면 바로 전화번호를 변경할 수 있겠네요..
preg_replace() 함수가 PHP에서 정규식을 통해 문자열을 치환하는 것이네요~
그럼. 즐프하세요 ^^
'프로그래밍 > Web' 카테고리의 다른 글
GIS 지도 좌표계에 대한 정리~ (0) | 2011.12.14 |
---|---|
모바일 웹 사이트 제작을 위한 표준~ (0) | 2011.11.28 |
PHP의 allow_url_fopen=off일때 URL 주소로 파일 읽어오기 (0) | 2011.10.28 |
MySQL 테이블을 모두 삭제하는 PHP 소스~ (0) | 2011.10.26 |
구글맵 javascript API v3에 대한 정리~ (3) | 2011.10.21 |
댓글