@jk-core/components
Version:
components for jk
34 lines (29 loc) • 914 B
text/typescript
export default function AutoHypen(input:string) {
const value = input.replace(/[^0-9]/g, '');
const result = [];
let restNumber = '';
// 지역번호와 나머지 번호로 나누기
if (value.startsWith('02')) {
// 서울 02 지역번호
result.push(value.substr(0, 2));
restNumber = value.substring(2);
} else if (value.startsWith('1')) {
// 지역 번호가 없는 경우
// 1xxx-yyyy
restNumber = value;
} else {
// 나머지 3자리 지역번호
// 0xx-yyyy-zzzz
result.push(value.substr(0, 3));
restNumber = value.substring(3);
}
if (restNumber.length === 7) {
// 7자리만 남았을 때는 xxx-yyyy
result.push(restNumber.substring(0, 3));
result.push(restNumber.substring(3));
} else {
result.push(restNumber.substring(0, 4));
result.push(restNumber.substring(4));
}
return (result.filter((val) => val).join('-'));
}