전화번호나 핸드폰번호를 입력받았을 때 하이픈(-)을 추가하는 함수는 아래와 같다.
예시
- 15881588 -> 1588-1588
- 01011112222 -> 010-1111-2222
- 025557777 -> 02-555-7777
- 0315557777 -> 031-555-7777
const contactNum = (n) => {
if (!n) return null;
const numbers = n.replace(/\D/g, '');
if (numbers.startsWith('02')) {
if (numbers.length <= 2) {
return numbers;
} else if (numbers.length <= 5) {
return `${numbers.slice(0, 2)}-${numbers.slice(2)}`;
} else if (numbers.length <= 9) {
return `${numbers.slice(0, 2)}-${numbers.slice(2, 5)}-${numbers.slice(5)}`;
} else {
return `${numbers.slice(0, 2)}-${numbers.slice(2, 6)}-${numbers.slice(6, 10)}`;
}
} else if (numbers.length === 8) {
return `${numbers.slice(0, 4)}-${numbers.slice(4)}`;
} else if (numbers.length <= 3) {
return numbers;
} else if (numbers.length <= 6) {
return `${numbers.slice(0, 3)}-${numbers.slice(3)}`;
} else if (numbers.length <= 10) {
return `${numbers.slice(0, 3)}-${numbers.slice(3, 6)}-${numbers.slice(6)}`;
} else {
return `${numbers.slice(0, 3)}-${numbers.slice(3, 7)}-${numbers.slice(7, 11)}`;
}
}'JavaScript&TypeScript' 카테고리의 다른 글
| JavaScript - 모바일에서 canvas 화질 저하되는 현상 (0) | 2024.04.26 |
|---|---|
| JavaScript - 한글 조사 처리 (0) | 2024.03.15 |
| TypeScript - any 타입을 지양하는 이유 (0) | 2023.09.10 |
| NestJS - class-validator 데코레이터 (0) | 2023.09.07 |
| NestJS - 네이밍 규칙 (0) | 2023.09.03 |