- 문자열에서 특정 내용을 찾거나 대체 하는데 사용한다.
- 생성자 함수 호출 : Const regexp = new RegExp(표현식, (플래그))
- 리터럴 표기법 : / 패턴(표현식) / 플래그 . ex ) /^[0-9]+$/;
- 주로 리터럴 표기법을 사용한다.
(1) 메서드
- .exec() : 일치하는 하나의 정보 반환한다.
- .test() : 일치 여부를 boolean으로 반환한다.
- .match() : 일치하는 문자열의 배열 반환 한다.
- .search() : 일치하는 문자열의 인덱스 반환한다.
- replace() : 일치하는 문자열을 대체하고 대체된 문자열 반환한다.
- split() : 일치하는 문자열을 분할하여 배열로 반환한다.
- toString() : 생성자 함수 방식의 정규식을 리터럴 방식의 문자열로 반환한다.
var a = 'Park wan gi';
var b = /a/ig;
console.log(b.exec(a)); // [ 'a', index: 1, input: 'Park wan gi' ]
console.log(b.test(a)); // true
console.log(a.match(b)); // [ 'a', 'a' ]
console.log(a.replace(b, 'X')); // PXrk wXn gi
console.log(a.search(b)); // 1 ← index
console.log(a.split(b)); // [ 'P', 'rk w', 'n gi' ]
(2) 플래그
- 플래그는 옵션이므로 선택적으로 사용, 플래그를 사용하지 않은 경우 문자열 내 검색 매칭 대상이 1개 이상이더라도 첫 번째 매칭한 대상만을 검색하고 종료한다.
- g : 문자열 내 모든 패턴 검색
- i : 대소문자 구별하지 않고 검색
- m : 문자열의 행이 바뀌더라도 검색 계속 진행
- u : 유니코드
- y : lastIndex 속성으로 지정된 인덱스에서만 1회 일치
(3) 패턴
- 검색하고 싶은 문자열을 지정
- 문자열의 따옴표는 생략
- . : 임의의 문자 한 개를 의미
- + : 최소 한 번의 반복을 의미
- | : or의 의미
- [] : a|b와 같은 표현 or을 의미, 범위 지정은 -
var a = 'park wan gi ccc';
var b = /.../; // 임의의 문자 3개
console.log(a.match(b)); // [ 'par', index: 0, input: 'park wan gi aaa' ]
var c = /a/g;
console.log(a.match(c)); // [ 'a', index: 1, input: 'park wan gi ccc' ]
var d = /c+/g;
console.log(a.match(d)); // [ 'ccc' ]
var e = /a|c/g;
console.log(a.match(e)); // [ 'a', 'a', 'c', 'c', 'c' ]
var f = /[ac]/g;
console.log(a.match(f)); // [ 'a', 'a', 'c', 'c', 'c' ]
var g = /[a-g]/g;
console.log(a.match(g)); // [ 'a', 'a', 'g', 'c', 'c', 'c' ]
- \d : 숫자를 의미한다.
- \D : 숫자 외를 의미한다.
- \w : 알파벳과 숫자를 의미한다.
- \W: 알파벳과 숫자 외를 의미한다.
var a = 'park wan gi 123 !@';
var b = /[\d!]+/g;
console.log(a.match(b)); // [ '123', '!' ]
var c = /[\D!]+/g;
console.log(a.match(c)); // [ 'park wan gi ', ' !@' ]
var d = /[\w!]+/g;
console.log(a.match(d)); // [ 'park', 'wan', 'gi', '123', '!' ]
var e = /[\W!]+/g;
console.log(a.match(e)); // [ ' ', ' ', ' ', ' !@' ]
- ^ : 문자열 처음을 의미한다.
- & : 문자열 끝을 의미한다.
- \s : 여러 가지 공백 문자 의미 한다.
var a = 'park wan gi 123 !@';
var b = /^park/g;
console.log(a.test(b)); // true
var c = /!@&/g;
console.log(a.match(c)); // true
'JavaScript' 카테고리의 다른 글
[JavaScript] Array (1) | 2023.10.26 |
---|---|
[JavaScript] String (0) | 2023.10.26 |
[JavaScript] Date (0) | 2023.10.24 |
[JavaScript] Math (0) | 2023.10.20 |
[JavaScript]Number (1) | 2023.10.20 |