JavaScript/javascript

Javascript 전화번호 하이픈 자동 삽입

BBB.OOO 2023. 11. 28. 16:25
반응형

input type="text" 형식으로 된 input 태그에 전화번호 입력 시 앞자리 숫자에 따른 자동 하이픈 삽입이

필요하여 구현하였다.

 

Javascript
const cellNumHyphen = (target) => {

    let value = target.value;

    if (!target.value) {
        return "";
      }

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

    const result = [];
    let restNumber = "";

    // 시작번호 02
    if (value.startsWith("02")) {
        result.push(value.substr(0, 2));
        restNumber = value.substring(2);
        target.maxLength = 12;
    // 시작번호 1, 1xxx-yyyy
    }else if (value.startsWith("1")) {
        restNumber = value;
        target.maxLength = 9;
    // 나머지 3자리 지역번호, 0xx-yyyy-zzzz
    }else {
        result.push(value.substr(0, 3));
        restNumber = value.substring(3);
        target.maxLength = 13;
    }

    // 7자리만 남았을 경우, xxx-yyyy
    if (restNumber.length === 7) {
        result.push(restNumber.substring(0, 3));
        result.push(restNumber.substring(3));
    } else {
        result.push(restNumber.substring(0, 4));
        result.push(restNumber.substring(4));
    }

    target.value = result.filter((val) => val).join("-");
}

 

  • value.startsWith("02")

startsWith 는 javascript prototype 으로 정의되어 있는 함수로 문자열(value)이 괄호 안

문자열로 시작하는지 확인하여 true 또는 false 를 리턴해준다.

 

 

HTML
<input type="text" class="inputbox" id="cellNum" onInput="cellNumHyphen(this)" maxlength="13" placeholder="휴대폰번호 입력">

 

onInput 속성을 통해 input type="text" 에 값을 입력할 때마다 반응하여 cellNumHyphen 함수를 호출한다.

반응형