본문 바로가기
JavaScript

[JavaScript] 정규표현식

by eddypark 2023. 10. 24.

- 문자열에서 특정 내용을 찾거나 대체 하는데 사용한다.

- 생성자 함수 호출 : 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