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
등 서울번호 및 각지역번호 인터넷번호 가능

댓글목록

등록된 댓글이 없습니다.

총 게시물 93 개, 페이지 3 RSS
제목 작성자
기타 PC에서 모바일버전으로 확인, 테스트 할수 있다. H
기타 chart제공 사이트 H
기타 작성한 웹문서 문법 유효성 검사 H
기타 EntityCode H
기타 HTML,CSS 소스정리 H
기타 축소된 자바스크립트 정리 H
JavaScript & jQuery NaN시 처리 H
JavaScript & jQuery 전화번호 입력시 자동 하이픈(-) 붙이기 H
JavaScript & jQuery 모든부라우져에서 즐겨찾기 기능 넣기 H
JavaScript & jQuery 함수가 존재하면 실행하기 H
MYSQL date, time 함수.. unix_timestamp H
MYSQL 날짜가 yyyy-mm-dd 형식으로 저장되어 있는 데이타 유닉스타임으로 변환 H
MYSQL 중복데이타 select H
MYSQL 구분자를 포함하는 데이타 select H
MYSQL 날짜가 Y|m|d 형식으로 저장되어 있는 데이타 컬럼 값 붙여서 유닉스타임으로 변환 H
게시물 검색