match()
메서드는 문자열에서 정규식과 매치되는 부분을 검색한다.
이 메서드는 검색 결과를 배열로 반환하거나, 일치하는 부분이 없으면null
을 반환한다.
메서드의 구문은 다음과 같다.
str.match(regexp);
여기서 regexp
은 검색할 패턴을 나타내는 정규식 객체이다.
예를 들어, 문자열에서 숫자를 찾으려면 다음과 같이 사용할 수 있다.
let str = "Hello World! 123";
let result = str.match(/\d+/);
// \d+ 는 하나 이상의 숫자에 일치하는 정규식이다.
console.log(result);
// 출력: ["123", index: 13, input: "Hello World! 123", groups: undefined]
반환된 배열은 첫 번째 요소로 가장 첫 번째 완전한 일치 항목을 포함하며, 그 뒤에는 괄호 안에 있는 모든 서브 패턴(그룹)에 대한 일치 항목이 따라온다.
또한 반환된 배열은 추가적인 속성들도 가지고 있다.
index
: 원본 문자열에서 일치 항목이 시작된 위치이다.
input
: 원본 문자열이다.
groups
: 캡처 그룹으로 이름이 지정된 경우 사용 가능하다.
만약 전역(g) 플래그가 설정된 정규식을 사용하면, match 메소드는 모든 일치 항목의 배열을 반환한다.
let str = "1 and 2 and 99";
let result = str.match(/\d+/g);
console.log(result); // 출력: ["1", "2", "99"]
위 코드에서 /g
플래그 때문에 모든 숫자가 매칭되어 ["1", "2", "99"] 배열이 반환된다.