일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- RxJS
- 릿코드
- 프로그래머스
- 프로세스
- 타입스크립트
- 해시테이블
- GraphQL
- 배열
- C
- 연결 리스트
- 이진탐색
- 포인터
- 웹팩
- 자바스크립트
- cors
- 큐
- pytorch
- 컨테이너
- 알고리즘
- Machine Learning
- 브라우저
- 연결리스트
- APOLLO
- alexnet
- 코딩테스트
- 자료구조
- vue3
- 스택
- 프론트엔드
- RT scheduling
- Today
- Total
목록정규표현식 (2)
프린세스 다이어리
1. 전체 거의 웬만한 국내 개인/업체 전화번호는 포맷팅 가능할듯. 물론 5자리 통신사 번호 같은 레어템은 안 침. const formatPhoneNumber = (str: string) => { if (typeof str !== 'string') return ''; str = str.replace(/[^0-9]/g, ''); if (str.indexOf('82') == 0) { return str.replace(/(^82)(2|\d{2})(\d+)?(\d{4})$/, '+$1-$2-$3-$4'); // +82 } else if (str.indexOf('1') == 0) { return str.replace(/(^1\d{3})(\d{4})$/, '$1-$2'); // 1588, 1566, 1677, ....
문제 바로가기 1. 접근 방법 이 문제는 딱히 특별한 접근 방법이 있다기보다는 정규표현식만 잘 쓰면 된다. // 1단계 new_id의 모든 대문자를 대응되는 소문자로 치환합니다. answer = answer.toLowerCase(); // 2단계 new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다. answer = answer.replace(/[^0-9a-z-_.]gi/, ""); // 3단계 new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다. answer = answer.replace(/\.+/gi, "."); // 4단계 new_id에서 마침표(.)가 처음이나 끝에 위치한다면 제거합니다. answer = a..