[JavaScript] 전화번호 Hyphen(-)기호 자동 삽입[JavaScript] 전화번호 Hyphen(-)기호 자동 삽입

Posted at 2018. 8. 21. 10:04 | Posted in JavaScript & jQuery/JavaScript
반응형

 

 

 

■ 휴대폰 번호 하이픈(-)기호 자동 삽입

 

 

 

# 소스코드

<html>
<head>
<title>:: 휴대폰 번호 마이너스(-) 삽입 ::</title>
<script>
function inputPhoneNumber(obj) {



    var number = obj.value.replace(/[^0-9]/g, "");
    var phone = "";



    if(number.length < 4) {
        return number;
    } else if(number.length < 7) {
        phone += number.substr(0, 3);
        phone += "-";
        phone += number.substr(3);
    } else if(number.length < 11) {
        phone += number.substr(0, 3);
        phone += "-";
        phone += number.substr(3, 3);
        phone += "-";
        phone += number.substr(6);
    } else {
        phone += number.substr(0, 3);
        phone += "-";
        phone += number.substr(3, 4);
        phone += "-";
        phone += number.substr(7);
    }
    obj.value = phone;
}
</script>
</head>
<body>
    <h2>휴대폰 번호를 입력해 주세요</h2>
    <input type="text" onKeyup="inputPhoneNumber(this);" maxlength="13" style="text-align:center;"/>
</body>
</html>

 

 

 

# 출력결과

 

 

 


 

 

 

 

■ 지역번호 서울 예외처리(02)

 

 

 

위의 코드를 구태여 휴대폰 번호라고 굳이 지정한것은.

한국의 특수한 지역번호 사정 때문이다.

 

휴대폰 번호 : 010-0000-0000

전화 번호 : 031-0000-0000

 

위와같이 휴대폰 번호나, 전화번호나 문자열의 길이는 기본적으로 13자리로 같지만

단한가지 서울특별시만은 전화번호이 앞 지역번호가 02 두자리이기에 따로 예외 처리가 필요했다.

그래서 아래와같이 전체적으로 사용할 수 있게 코드를 수정해 보았다.

 

 

# 소스코드

<html>
<head>
<title>:: 전화번호 마이너스(-) 삽입 ::</title>
<script>
  function inputTelNumber( ele ) {

    if( event.keyCode != 8 ) {
      const regExp = new RegExp( /^[0-9]{2,3}-^[0-9]{3,4}-^[0-9]{4}/g );
      if( ele.value.replace( regExp, "").length != 0 ) {
        if( checkPhoneNum( ele.value ) == true ) {
          let number = ele.value.replace( /[^0-9]/g, "" );
          let tel = "";
          let seoul = 0;
          if( number.substring( 0, 2 ).indexOf( "02" ) == 0 ) {
            seoul = 0;
          }
          if( number.length < ( 4 - seoul) ) {
              return number;
          } else if( number.length < ( 7 - seoul ) ) {
              tel += number.substr( 0, (3 - seoul ) );
              tel += "-";
              tel += number.substr( 3 - seoul );
          } else if(number.length < ( 11 - seoul ) ) {
              tel += number.substr( 0, ( 3 - seoul ) );
              tel += "-";
              tel += number.substr( ( 3 - seoul ), 3 );
              tel += "-";
              tel += number.substr( 6 - seoul );
          } else {
              tel += number.substr( 0, ( 3 - seoul ) );
              tel += "-";
              tel += number.substr( ( 3 - seoul), 4 );
              tel += "-";
              tel += number.substr( 7 - seoul );
          }
          ele.value = tel;
        }
      }
    }
  }

  function checkPhoneNum( number ) {
    const regExp = new RegExp( /^[0-9|-]*$/ );
    if( regExp.test( number ) == true ) { return true; }
    else { return false; }
  }
</script>
</head>
<body>
    <h2>전화 번호를 입력해 주세요</h2>
    <input type="text" onKeyup="inputTelNumber(this);" maxlength="13" style="text-align:center;"/>
</body>
</html>

 

 

 

# 출력결과 - 지역번호가 서울(02)인 경우

 

 

 

# 출력결과 - 지역번호가 서울(02)이 아닌경우

 

 

 

 

 

 

 

반응형
//