RegExp 객체
는 정규 표현을 다루는데 사용되는 객체입니다.
let 변수명 = new RepExp('정규 표현식', '옵션');
let 변수명 = /정규표현/옵션;
str.match(정규 표현);
// str은 검색할 문자열
match
는 문자열에서 인수로 지정한 정규 표현과 매치된 문자열을 배열 형태로 반환해주는 메소드입니다.
정규표현.exec(str)
//str은 검색할 문자열
exec
도 match와 같이 문자열에서 정규 표현과 매치된 문자열을 반환하는 메소드입니다.
match
와 exec
의 차이점은 무엇일까요?
match
는 별 다른 설정없이 문자열의 처음부터 끝까지 계속 검사하며 매치될 때 마다 배열에 저장합니다. 그리고 문자열의 끝에 도달하면 결과를 배열로 반환합니다. 반면 exec
는 한 번의 실행에서 하나의 결과만을 반환합니다. 그래서 문자열 끝까지 검사하기 위해서는 반복 구문을 추가해야합니다.
이 외에도 exec
에는 한 번 반환할 때 반환 위치를 기억합니다. 그래서 다시 반복 실행하게되면 이전에 검사를 마쳤던 위치 다음부터 검사를 시작합니다.
matchAll(reg)
String 객체에 matchAll
이라는 메소드가 등장하면서 exec
처럼 문자열 내 다수의 정규 표현식을 검출할 수 있게되었습니다.