RegExp 생성자는 패턴을 사용해 텍스트를 판별할 때 사용합니다. -MDN
정규표현식은 암호처럼 보이지만 문자열을 검사하고 처리할 수 있는 강력한 도구입니다. 정규 표현식을 제대로 이해하고 사용한다면 프로그래밍의 효율을 높일 수 있다고 합니다.
정규 표현식은 RegExp 리터럴 표기법과 생성자를 사용해 만들거나 슬래시 문자로 패턴을 묶어서 리터럴 값으로 작성할 수 있습니다.
/ab+c/i
let re1 = new RegExp(/abc/) // 리터럴
let re2 = new RegExp('ab+c') // 생성자
let re3 = /abc/; // 리터럴
정규 표현식에서는 백슬래쉬에 유의해야합니다.
특별한 문자 코들르 사용하기 위해서는 백슬래쉬를 사용해야합니다.
let a = /a\+/;
let a2 = RegExp('a\+');
위의 두 줄은 동일한 정규표현식을 생성합니다.
정규표현식에는 여러가지 메서드가 존재하는데 이번에는 가장단순한 메서드인 test에 대해서 알아보겠습니다.
이 메서드에 문자열을 전달하면 문자열이 정규 표현식의 패턴과 일치하는지 알려주는지 불리언을 반환하는 메서드입니다.
console.log(/abc/.test("abcde));
// 결과 : true
console.log(/abc/.test("abxde));
// 결과 : false
문자열에 특정 문자가 포함돼 있는지는 indexOf로도 확인이 가능하지만 정규 표현식을 사용하면 복잡한 패턴을 표현할 수 있습니다.
숫자가 포함돼 있는지 확인하기 위해서는 다음과 같이 사용할 수 있습니다.
console.log(/[0123456789]/.test("in 1992"));
// → true
console.log(/[0-9]/.test("in 1992"));
// → true
대골화 안에서 '-'을 사용하면 범위를 나타냅니다.
정규 표현식에서 유용하게 사용되는 메타 문자(Meta character)가 있습니다.
\d 모든 문자
\w 영숫자
\s 공백, 탭, 줄 바꿈
\D 숫자가 아닌 문자
\W 영숫자가 아닌 문자
\S 공백이 아닌 문자
. 개행 문자를 제외한 모든 문자
등 많은 메타 문자가 있습니다.