문법 정리
Groups and ranges
| | | 또는 |
| () | 그룹 |
| [] | 문자셋, 괄호 안에 어떤 문자든 |
| [^] | 부정 문자셋, 괄호 안에 어떤 문자가 아닐 때 |
| (?:) | 찾지만 기억하지는 않음 |
Quantifiers
| ? | 없거나 있거나 (zero or one) |
| * | 없거나 있거나 많거나 (zero or more) |
| + | 하나 또는 많이 (one or more) |
| {n} | n번 반복 |
| {min,} | 최소 |
| {min,max} | 최소, 최대 |
Boundary-type
| \b | 단어의 경계 |
| \B | 단어의 경계가 아님 |
| ^ | 문자의 시작 |
| $ | 문장의 끝 |
Character classes
| \ | 특수 문자가 아닌 문자 |
| . | 어떤 글자 |
| \d | digit 숫자 |
| \D | digit 숫자 아님 |
| \w | word 문자 |
| \W | word 문자 아님 |
| \s | space 공백 |
| \S | space 공백 아님 |
사용 예시
const answer = new_id
.toLowerCase() // 1
.replace(/[^\w\d-_.]/g, "") // 2
.replace(/\.{2,}/g, ".") // 3
.replace(/^\.|\.$/g, "") // 4
.replace(/^$/g, "a") // 5
.slice(0, 15) // 6
.replace(/\.$/g, ""); // 7
1. 모든 대문자를 대응되는 소문자로 치환
2. 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거
- [^] 괄호안의 문자가 아닐 경우 제거
3. 마침표가 2번 이상 연속되는 부분을 하나의 마침표로 치환
- 최소 2개 이상인 경우 .로 치환
4. 처음이나 끝에 마침표가 위치한다면 제거
- ^문장의 시작에 마침표가 있거나(|) $문장의 끝에 마침표가 있다면 제거
5. 빈 문자열이라면 'a'를 대입
- ^문장의 시작과 $문장의 끝이 없다면 'a'로 치환
6. 15개의 문자를 제외한 나머지 문자열들을 모두 제거
- slice는 slice(begin, end)으로 begin부터 end까지에 대한 얕은 복사본을 새로운 배열 객체로 반환한다. 원본 배열은 바뀌지 않음!
7. 제거 후 마침표가 끝에 위치한다면 끝에 위치한 마침표 문자를 제거
- $문장의 끝에 마침표가 있다면 제거
정규식 연습 사이트
RegExr: Learn, Build, & Test RegEx
RegExr is an online tool to learn, build, & test Regular Expressions (RegEx / RegExp).
regexr.com
정규식 퀴즈 사이트
'IT > JavaScript' 카테고리의 다른 글
| 자바스크립트에서 뒤로가기 감지하기 (0) | 2022.06.07 |
|---|---|
| slice와 splice의 차이점 (0) | 2022.04.05 |
| padEnd() (0) | 2022.03.30 |
| index값들로 배열에서 삭제하기 (0) | 2022.03.18 |
| [TIL] 클로저(Closure)란? (0) | 2022.02.21 |