티스토리 뷰
31.1 정규 표현식이란?
일정한 패턴을 가진 문자열의 집합을 표현하기 위해 사용하는 형식 언어
패턴 매칭 기능: 특정 패턴과 일치하는 문자열을 검색하거나 추출, 치환할 수 있는 기능
31.2 정규 표현식의 생성
정규 표현식 리터럴 /regexp/flags
RegExp 생성자 함수 new RegExp(pattern[, flags])
31.3 RegExp 메서드
1. RegExp.prototype.exec(string)
정규 표현식의 패턴을 검색하여 매칭되는 첫 번째 결과를 배열에 담아 반환(g 플래그가 있어도)
없으면 null 반환
2. RegExp.prototype.test(string)
정규 표현식 패턴을 검색하여 매칭 결과를 불리언으로 반환
3. String.prototype.match(regExp)
전달된 정규 표현식의 매칭 결과를 모두 배열에 담아 반환(31.3.1 RegExp.prototype.exec과 차이)
없으면 null 반환
31.4 플래그
정규 표현식의 검색 방식을 설정하기 위해 사용
플래그는 총 6개 있음
아래 3 플래그가 자주 사용됨
여러 플래그를 동시에 사용할 수 있음
i | ignore case | 대소문자를 구별하지 않음 |
g | global | 대상 문자열 내에서 패턴과 일치하는 모든 문자열 검색 |
m | multi line | 문자열 행이 바뀌더라도 계속 검색 |
31.5 패턴
문자열의 일정한 규칙을 표현하기 위해 사용
1. 특정 문자열 검색
2. 임의 문자열 검색
. 임의의 문자 한 개를 의미
3. 반복 검색
/A{m,n}/ A가 m 이상 n 이하 반복됨
/A{n}/ A가 n번 반복됨 /A{n,n}/과 동일
/A{n,}/ A가 n번 이상 반복됨
/A+/ A가 1번 이상 반복됨 /A{1,}/과 동일
/A?/ A가 1번 혹은 0번 반복됨 /A{0,1}/과 동일
4. OR 검색
/A|B/ A 또는 B를 의미
/[AB]+/ A 또는 B가 한 번 이상 반복됨 /A+|B+/와 동일
대괄호 안에 -를 사용하여 범위 지정
/[A-Z]/ 대문자 알파벳 검색
/[A-Za-z]/ 대소문자 알파벳 검색
\d 숫자 검색 /[0-9]/와 동일
\D 숫자가 아닌 문자 검색
\w 알파벳, 숫자, 언더스코어 /[A-za-z0-9_]/와 동일
\W 알파벳, 숫자, 언더스코어가 아닌 문자
5. NOT 검색
대괄호 내부의 ^
6. 시작 위치로 검색
대괄호 밖의 ^는 문자열의 시작을 의미
7. 마지막 위치로 검색
$ 문자열의 마지막을 의미
31.6 자주 사용하는 정규표현식
4. 공백
\s 스페이스, 탭 등 여러 공백 문자를 의미 /[\t\r\n\v\f]/와 동일
8. 특수 문자 포함 여부
(/[^A-Za-z0-9]/gi).test(target);
// 특수 문자 제거
target.replace(/[^A-Za-z0-9]/gi, '');
'책' 카테고리의 다른 글
[딥다이브] 33. 7번째 데이터 타입 Symbol (0) | 2024.08.19 |
---|---|
[딥다이브] 32. String (0) | 2024.08.13 |
[딥다이브] 30. Date (4) | 2024.08.11 |
[딥다이브] 29. Math (0) | 2024.08.06 |
[딥다이브] 28. Number (0) | 2024.08.06 |