사용자가 원하는 형식으로 전화를 입력했을때 정해진 형식(xx-xxx-xxxx)으로 변경해주는 함수입니다.
const formatPhoneNumber = (input) => { const cleanInput = input.replaceAll(/[^0-9]/g, ""); let result = ""; const length = cleanInput.length; if(length === 8) { result = cleanInput.replace(/(\d{4})(\d{4})/, '$1-$2'); } else if(cleanInput.startsWith("02") && (length === 9 || length === 10)) { result = cleanInput.replace(/(\d{2})(\d{3,4})(\d{4})/, '$1-$2-$3'); } else if(!cleanInput.startsWith("02") && (length === 10 || length === 11)) { result = cleanInput.replace(/(\d{3})(\d{3,4})(\d{4})/, '$1-$2-$3'); } else { result = undefined; } console.log(`${input} -> ${result}`); return result; }
테스트를 위해 다음 코드를 실행해 보면..
formatPhoneNumber("08032332333"); formatPhoneNumber("021231234"); formatPhoneNumber("(02)12351234"); formatPhoneNumber("63633221"); formatPhoneNumber("010-9543-3224"); formatPhoneNumber("0625252312"); formatPhoneNumber("03112341234");
결과는 다음과 같습니다.
021231234 -> 02-123-1234
08032332333 -> 080-3233-2333
021231234 -> 02-123-1234
(02)12351234 -> 02-1235-1234
63633221 -> 6363-3221
010-9543-3224 -> 010-9543-3224
0625252312 -> 062-525-2312
03112341234 -> 031-1234-1234
인지하지 못한 전화번호 형식이 있을 수 있으니 개선해서 사용하시면 됩니다.