숫자를 전화번호 형식으로 변환해야 할 때 사용하는 함수입니다.
(전화번호 형식은 통일시키고 싶은데 전화번호 입력란은 하나로 쓰고 싶을 경우 사용했습니다.
저장시 숫자가 아닌 문자는 제거 후 저장, 저장된 번호를 목록/상세 보기 등에 표시할 때는 전화번호 형식으로 변환)
숫자만으로 이루어져 있거나,
다른 문자 (예 : -
, .
, /
등) 포함 시 해당 문자 삭제 후 전화번호 형식 변환 후 반환합니다.
코드
function regexTel(tel) {
if (!tel) return "";
// 숫자가 아닐 경우 제거
var rtnTel = tel.replace(/[^\d]/g, "");
if (rtnTel.length === 11) {
// 000-0000-0000
return rtnTel.replace(/(\d{3})(\d{4})(\d{4})/g, "$1-$2-$3");
} else if (rtnTel.length === 10) {
// 00-0000-0000, 000-000-0000
return rtnTel.startsWith("02") ? rtnTel.replace(/(\d{2})(\d{4})(\d{4})/g, "$1-$2-$3") : rtnTel.replace(/(\d{3})(\d{3})(\d{4})/g, "$1-$2-$3");
} else if (rtnTel.length === 9) {
// 00-000-0000
return rtnTel.replace(/(\d{2})(\d{3})(\d{4})/g, "$1-$2-$3");
} else if (rtnTel.length === 8) {
// 0000-0000
return rtnTel.replace(/(\d{4})(\d{4})/g, "$1-$2");
} else {
// 위 규칙에 맞는 것이 없을 경우 원문으로 반환
return tel;
}
}
설명
var rtnTel
변수 선언 : 조건에 맞지 않을 경우 원문으로 반환하기 위해 특수 문자 제거한 결과는 별도로 관리/[^\d]/g
: ^\d - 숫자가 아닌, g - 전체 문자열을 검색하고 모든 일치 항목을 반환- length로 조건 : 전화번호 형식이 다양해서 조건문으로 처리
- 조건에 일치하는 것이 없는 경우 : 원문(tel)으로 반환
실행 결과
위 내용, 개발자 도구 콘솔 창에서 실행 시 캡처
'냐냐한 IT > 냐냐한 JavaScript' 카테고리의 다른 글
for 문으로 ajax 여러 번 호출, 모든 호출이 끝난 후 처리 (0) | 2022.01.11 |
---|---|
Layer를 화면 중간에 표시 (0) | 2020.03.22 |
JavaScript - CheckBox 전체 선택/해제 (0) | 2019.11.26 |
javascript 이벤트 취소(unbind) (0) | 2019.11.07 |
javascript(jquery)로 table 행 병합(rowspan) (0) | 2019.11.01 |