본문 바로가기
01_PROJECT/OBJECT _2023

[ JavaScript ] 정규식과 관련된 편리하고 유용한 메서드를 알아보자

by zestlumen 2023. 8. 3.

정규식(Regular Expression)은 문자열을 처리하는데 아주 유용한데,

문자열을 검색한다거나, 추출한다거나, 패턴을 찾거나 등등

JavaScript에서는 정규식을 다루기 위해 여러가지 유용한 메서드를 제공하고 있다.

정규식과 관련된 유용한 메서드를 알아보자.

 

1. test() 

주어진 문자열이 정규식과 일치하면 true,

그렇지 않으면 false로 불리언 값으로 반환한다.

 

const regex = /hello/;
const str = 'hello regex';
const result = regex.test(str);
console.log(result); // true

 

2. exec()

주어진 문자열에서 정규식과 일치하는 부분을 찾아 배열로 반환.

첫번째 요소는 일치한 부분 문자열,  나머지 요소는 그룹 캡쳐된 값들.

매칭되는 부분이 없으면 null을 반환.

 

const regex = /(\d+)-(\d+)/; 
const result = regex.exec("1-2"); 
console.log(result); // ["1-2", "1", "2"]

 

\d는 숫자를 나타내는 메타문자, +는 앞의 패턴이 하나 이상 연속해서 나타남을 의미

 

 

3. match()

주어진 문자열에서 정규식과 일치하는 부분을 찾아 배열로 반환.

exec()와 유사하지만 g플래그를 사용해 문자열 전체에서 모든 일치하는 부분을 찾을 수 있다.

매칭되는 부분이 없으면 null을 반환.

 

const regex = /apple/g;
const str = 'apple banana apple orange';
const result = str.match(regex);
console.log(result); // ["apple", "apple"]

 

4. search()

정규식과 일치하는 문자열의 첫 번째 인덱스를 반환.

일치하는 문자열을 찾지 못하면 -1을 반환

 

const str = 'apple banana apple orange';
const regex = /apple/;
const regex2 = /banana/;

const result = str.search(regex);
console.log(result); // 0

const result2= str.search(regex2);
console.log(result); // 6

 

5. replace()

정규식과 일치하는 문자열을 다른 문자열로 대체.

g플래그를 사용하면 일치하는 모든 부분이 대체된다.

 

const regex = /apple/g;
const str = 'apple banana apple orange';
const newStr = str.replace(regex, 'grape');
console.log(newStr); // "grape banana grape orange"

 

6.split()

주어진 문자열을 정규식에 맞춰 문자열을 분리하고 배열로 반환한다.

일치하는 부분은 분할 기준이 된다.

 

const regex = /\s+/;
const str = 'apple banana  orange';
const result = str.split(regex);
console.log(result); // ["apple", "banana", "orange"]

 

\s는 공백(space)를 나타내고 +는 하나 이상의 공백 문자를 의미

공백 문자열들이 구분자로 사용되어 문자열을 분리해 배열로 저장된 코드