This page was translated from English by the community. Learn more and join the MDN Web Docs community.

View in English Always switch to English

RegExp

Baseline
Widely available
*

This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015년 7월.

* Some parts of this feature may have varying levels of support.

RegExp 생성자는 패턴을 사용해 텍스트를 판별할 때 사용합니다.

정규 표현식에 대한 소개는 JavaScript 안내서의 정규 표현식 장을 참고하세요. 정규 표현식 구문에 대한 더 자세한 정보는 정규 표현식 참고서를 참고하시기 바랍니다.

설명

리터럴 표기법과 생성자

RegExp 객체는 리터럴 표기법과 생성자로써 생성할 수 있습니다.

  • 리터럴 표기법은 두 빗금 사이에 패턴을 사용하며, 두 번째 빗금 뒤에 선택적으로 플래그가 올 수 있습니다.
  • 생성자 함수은 첫 번째 매개변수로 문자열이나 RegExp 객체 중 하나를 받고 두 번째 매개변수로 선택적 플래그 문자열을 받습니다.

다음의 세 표현식은 모두 같은 정규 표현식을 생성합니다.

js
const re = /ab+c/i; // 리터럴 표기법
// 혹은
const re = new RegExp("ab+c", "i"); // 첫 번째 인수로 문자열 패턴과 함께 생성자 사용
// 혹은
const re = new RegExp(/ab+c/, "i"); // 첫 번째 인수로 정규 표현식 리터럴과 함께 생성자 사용

정규 표현식을 사용하려면 먼저 정규 표현식을 컴파일해야 합니다. 이 과정을 통해 보다 효율적으로 매칭을 수행할 수 있습니다. 이 프로세스에 대한 보다 자세한 내용은 dotnet 문서에서 확인할 수 있습니다.

리터럴 표기법은 표현식이 평가될 때 정규 표현식이 컴파일됩니다. 반면에 RegExp 객체의 생성자 new RegExp('ab+c')는 정규 표현식을 런타임에 컴파일합니다.

동적 입력에서 정규식을 빌드하려면 RegExp() 생성자의 첫 번째 인수로 문자열을 사용합니다.

생성자의 플래그

표현식 new RegExp(/ab+c/, flags)은 첫 번째 매개변수의 소스와 두 번째 매개변수의 플래그를 사용하여 새로운 RegExp를 생성합니다.

생성자 함수를 사용할 경우, 일반 문자열 이스케이프 규칙(문자열에 포함될 때 특수 문자 앞에 \ 추가)이 필요합니다.

예를 들어 다음 두 줄은 동일한 정규 표현식을 생성합니다.

js
const re = /\w+/;
// 혹은
const re = new RegExp("\\w+");

Perl 형태의 RegExp 속성

일부 RegExp 속성은 같은 값에 대해 긴 이름과 짧은 (Perl 형태의) 이름 모두 가지고 있습니다. (Perl은 JavaScript가 정규 표현식을 만들 때 참고한 프로그래밍 언어입니다.) 사용하지 않는 RegExp 속성을 참고하세요.

생성자

RegExp()

새로운 RegExp 객체를 생성합니다.

정적 속성

get RegExp[@@species]

파생 객체를 생성할 때 사용하는 생성자입니다.

RegExp.lastIndex

다음 판별을 시작할 인덱스입니다.

인스턴스 속성

RegExp.prototype.flags