문법 정리
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. 제거 후 마침표가 끝에 위치한다면 끝에 위치한 마침표 문자를 제거
- $문장의 끝에 마침표가 있다면 제거
정규식 연습 사이트
정규식 퀴즈 사이트
'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 |