JavaScript & jQuery | 전화번호 입력시 자동 하이픈(-) 붙이기
작성자
input창에 사용자가 숫자를 입력하면 자동으로 하이픈(-)을 붙여 달라고 요청...
 
ㅎ ㅏ아...진짜 이런건 input박스를 3개로 나뉘어 주고 maxlength를 각 input박스에 맞게 수정하면 될거를
꼭 한개의 input박스로 해달라고 해놓고 이런걸 요청하는 사람들이 있다..
 
간단하게 해결하기 위해 검색해봤지만 제대로 검색된 결과가 없어서..
일단 짜집기 ㄱㄱㄱㄱ
 
유저들은 어떤생각을 가지고 입력할지 모른다.
대충 이렇게 입력하겠지 라는 생각을 가지고 진행하다 보면..좌절을 겪을수 있다..
 
특수기호..032)123-1234로 입력할수도 있겠고 032.123.1234로 입력할수도 있고..
 
 
아예 특수기호를 다 빼고 다시 하이픈(-)을 붙여버리자..
국번이 두자리수인 02가 걸리네..
인터넷전화가 걸리네..후아...

 

<script language="javascript">
    function chk_tel(str, field) {
        var str;
        str = checkDigit(str);
        len = str.length;

        if (len == 8) {
            if (str.substring(0, 2) == 02) {
                error_numbr(str, field);
            } else {
                field.value = phone_format(1, str);
            }
        } else if (len == 9) {
            if (str.substring(0, 2) == 02) {
                field.value = phone_format(2, str);
            } else {
                error_numbr(str, field);
            }
        } else if (len == 10) {
            if (str.substring(0, 2) == 02) {
                field.value = phone_format(2, str);
            } else {
                field.value = phone_format(3, str);
            }
        } else if (len == 11) {
            if (str.substring(0, 2) == 02) {
                error_numbr(str, field);
            } else {
                field.value = phone_format(3, str);
            }
        } else {
            error_numbr(str, field);
        }
    }

    function checkDigit(num) {
        var Digit = "1234567890";
        var string = num;
        var len = string.length
        var retVal = "";

        for (i = 0; i < len; i++) {
            if (Digit.indexOf(string.substring(i, i + 1)) >= 0) {
                retVal = retVal + string.substring(i, i + 1);
            }
        }
        return retVal;
    }

    function phone_format(type, num) {
        if (type == 1) {
            return num.replace(/([0-9]{4})([0-9]{4})/, "$1-$2");
        } else if (type == 2) {
            return num.replace(/([0-9]{2})([0-9]+)([0-9]{4})/, "$1-$2-$3");
        } else {
            return num.replace(/(^01.{1}|[0-9]{3})([0-9]+)([0-9]{4})/, "$1-$2-$3");
        }
    }

    function error_numbr(str, field) {
        alert("정상적인 번호가 아닙니다.");
        field.value = "";
        field.focus();
        return;
    }
</script>

<input type="input" name="tel1" onblur="chk_tel(this.value,this);">

사용예)

032)1234-1234 = 032-1234-1234
032.1234.1234 = 032-1234-1234
03212341234 = 032-1234-1234
02)123-1234 = 02-123-1234
02)1231234 = 02-123-1234
021231234 = 02-123-1234
02)12312345 = 02-1231-2345
15881234 = 1588-1234
등 서울번호 및 각지역번호 인터넷번호 가능

댓글목록

등록된 댓글이 없습니다.

총 게시물 12 개, 페이지 1 RSS
제목 작성자
JavaScript & jQuery jQuery 다수의 Ajax 요청 처리 관련 H
JavaScript & jQuery parent() 활용 - 클릭한 클래스의 상위 클래스 찾아서 hide() H
JavaScript & jQuery 스크롤바 상단 고정메뉴 H
JavaScript & jQuery jquery 해당 클래스안에서 iframe name찾기, iframe과 iframe간 제어 H
JavaScript & jQuery jquery 파일업로드 미리보기 H
JavaScript & jQuery 'jquery date picker' 시작날짜 이후로 마지막날짜 달력 보이기 H
JavaScript & jQuery 정수로 반환하면서 NaN일때 0으로 처리 H
JavaScript & jQuery jQuery Ajax 한글 깨짐 해결방법 H
JavaScript & jQuery NaN시 처리 H
JavaScript & jQuery 전화번호 입력시 자동 하이픈(-) 붙이기 H
JavaScript & jQuery 모든부라우져에서 즐겨찾기 기능 넣기 H
JavaScript & jQuery 함수가 존재하면 실행하기 H
게시물 검색