Get to know MDN better
This page was translated from English by the community. Learn more and join the MDN Web Docs community.
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 객체는 리터럴 표기법과 생성자로써 생성할 수 있습니다.
다음의 세 표현식은 모두 같은 정규 표현식을 생성합니다.
정규 표현식을 사용하려면 먼저 정규 표현식을 컴파일해야 합니다. 이 과정을 통해 보다 효율적으로 매칭을 수행할 수 있습니다. 이 프로세스에 대한 보다 자세한 내용은 dotnet 문서에서 확인할 수 있습니다.
리터럴 표기법은 표현식이 평가될 때 정규 표현식이 컴파일됩니다. 반면에 RegExp 객체의 생성자 new RegExp('ab+c')는 정규 표현식을 런타임에 컴파일합니다.
동적 입력에서 정규식을 빌드하려면 RegExp() 생성자의 첫 번째 인수로 문자열을 사용합니다.
표현식 new RegExp(/ab+c/, flags)은 첫 번째 매개변수의 소스와 두 번째 매개변수의 플래그를 사용하여 새로운 RegExp를 생성합니다.
생성자 함수를 사용할 경우, 일반 문자열 이스케이프 규칙(문자열에 포함될 때 특수 문자 앞에 \ 추가)이 필요합니다.
예를 들어 다음 두 줄은 동일한 정규 표현식을 생성합니다.
일부 RegExp 속성은 같은 값에 대해 긴 이름과 짧은 (Perl 형태의) 이름 모두 가지고 있습니다. (Perl은 JavaScript가 정규 표현식을 만들 때 참고한 프로그래밍 언어입니다.) 사용하지 않는 RegExp 속성을 참고하세요.
새로운 RegExp 객체를 생성합니다.
파생 객체를 생성할 때 사용하는 생성자입니다.
RegExp.lastIndex다음 판별을 시작할 인덱스입니다.
RegExp 객체의 플래그를 담은 문자열입니다.
RegExp.prototype.dotAll.이 줄 바꿈에 일치하는지 여부를 나타냅니다.
RegExp.prototype.global정규 표현식이 문자열 내에서 가능한 모든 경우에 일치하는지, 아니면 최초에 대해서만 일치하는지 나타냅니다.
RegExp.prototype.ignoreCase문자열의 대소문자를 구분하는지 나타냅니다.
RegExp.prototype.multiline여러 줄에 걸쳐 탐색할 것인지 나타냅니다.
RegExp.prototype.source패턴을 나타내는 문자열입니다.
RegExp.prototype.sticky검색이 접착(sticky)되어있는지 나타냅니다.
RegExp.prototype.unicodeUnicode 기능의 활성화 여부입니다.
스크립트 실행 중 정규 표현식을 (다시) 컴파일합니다.
RegExp.prototype.exec()문자열 매개변수에 대해 검색을 실행합니다.
RegExp.prototype.test()문자열 매개변수에 대해 판별을 실행합니다.
RegExp.prototype.toString()객체의 문자열 표현을 반환합니다. Object.prototype.toString() 메서드를 재정의합니다.
RegExp.prototype[@@match]()주어진 문자열에 대해 일치하는 결과를 반환합니다.
RegExp.prototype[@@matchAll]()주어진 문자열에 대해 일치하는 모든 결과를 반환합니다.
RegExp.prototype[@@replace]()주어진 문자열 내의 일치를 새로운 문자열로 대치합니다.
RegExp.prototype[@@search]()주어진 문자열에 대해 일치하는 인덱스를 반환합니다.
RegExp.prototype[@@split]()주어진 문자열을 분할해 배열로 반환합니다.
다음 스크립트에서는 String 객체의 replace() 메서드를 사용하여 이름 성씨 형태의 이름을 성씨, 이름 형태 바꿔 반환합니다.
대치 문자열에는 $1과 $2를 사용하여 정규 표현식 패턴의 각 괄호에 일치한 결과를 받아옵니다.
실행 결과는 "Smith, John"입니다.
기본 줄 바꿈 문자는 플랫폼(Unix, Windows 등)마다 다릅니다. 아래의 분할 스크립트는 모든 플랫폼의 줄 바꿈을 인식합니다.
정규 표현식 패턴의 순서를 바꾸면 작동하지 않을 수 있습니다.
sticky 플래그는 해당 정규 표현식이 접착 판별, 즉 RegExp.prototype.lastIndex에서 시작하는 일치만 확인하도록 할 수 있습니다.
접착 플래그 y의 일치는 정확히 lastIndex 위치에서만 발생할 수 있으나, 전역 플래그 g의 경우 lastIndex 또는 그 이후에서도 발생할 수 있습니다.
전역 플래그 g를 사용했다면, 3개가 아니고 6개 숫자 모두 일치했을 것입니다.
\w와 \W는 a부터 z, A부터 Z, 0부터 9 _ 등의 ASCII 문자에만 일치합니다.
러시아어나 히브리어와 같은 다른 언어의 문자까지 일치하려면 \uhhhh(이때 hhhh는 해당 문자의 16진법 Unicode 값) 문법을 사용하세요. 아래 예제에서는 문자열에서 Unicode 문자를 추출합니다.
유니코드 속성 이스케이프 기능을 사용해 \p{scx=Cyrl}과 같은 간단한 구문으로 이 문제를 해결할 수 있습니다.
참고 : 이 때는 정규표현식보단 URL API를 통해 브라우저에 내장된 URL 구문 분석기를 사용하는 것이 좋습니다.
| ECMAScript® 2027 Language Specification # sec-regexp-regular-expression-objects |
Enable JavaScript to view this browser compatibility table.
This page was last modified on 2024년 12월 17일 by MDN contributors.
Your blueprint for a better internet.
Visit Mozilla Corporation’s not-for-profit parent, the Mozilla Foundation.
Portions of this content are ©1998–2026 by individual mozilla.org contributors. Content available under a Creative Commons license.