NATIVE

settings_applicationsObject  >   settings_applicationsRegExp

NATIVE

Editing
  • bug_report

Constructor

정규표현식 객체를 생성하는 생성자이며 리터럴(literal)과 new 연산자를 사용한 생성자 함수 호출 방식을 함께 지원한다.

구문

형식
/expression/flags

리터럴(literal)로 작성할 수 있으며 /로 시작해 원하는 패턴을 작성하고 /로 종결한다. 그 이후 flag가 필요하다면 정의한다.

형식
new RegExp(pattern[, flags])

Prototype 체인

RegExp

  • Properties

    • @@species

      RegExp 객체의 생성자를 조회한다.

    • dotAll

      s 플래그가 정규식에 함께 사용되는지 여부를 나타낸다.

    • flags

      정규식 객체의 플래그(flag)로 구성된 문자열을 반환한다.

    • global

      g 플래그가 정규식에 사용되는지 여부를 나타낸다.

    • hasIndices

      d 플래그가 정규식에 사용되는지 여부를 나타낸다.

    • ignoreCase

      i 플래그가 정규식에 사용되는지 여부를 나타낸다.

    • lastIndex

      정규표현식의 다음 일치에 대한 판단을 시작할 인덱스를 지정한다.

    • multiline

      m 플래그가 정규식에 사용되는지 여부를 나타낸다.

    • source

      정규표현식 객체의 소스 텍스트를 포함하는 문자열을 조회할 수 있으며 양쪽의 슬래시와 플래그가 포함되어 있지 않다.

    • sticky

      검색이 고정되어 있는지 여부를 나타낸다(lastIndex 프로퍼티로 지정된 인덱스에서 부터 문자열을 검색).

    • unicode

      u 플래그가 정규식에 사용되는지 여부를 나타낸다.

    • unicodeSets

      v 플래그가 정규식에 사용되는지 여부를 나타낸다.

  • Methods

    • @@match

      String.prototype.match() 메소드의 동작을 지정한다.

    • @@matchAll

      String.prototype.matchAll() 메소드의 동작을 지정한다.

    • @@replace

      String.prototype.replace() 및 String.prototype.replaceAll() 메소드의 동작을 지정한다.

    • @@search

      String.prototype.search() 메소드의 동작을 지정한다.

    • @@split

      String.prototype.split() 메소드의 동작을 지정한다.

    • exec()

      지정된 문자열을 대상으로 정규식을 실행한다.

    • test()

      지정된 문자열에 일치하는 문자열이 포함되어 있는지를 검사하고 존재하는 경우에는 true, 그렇지 않은 경우에는 false를 반환한다.

    • toString()

      정규식을 나타내는 문자열을 반환한다.

Object

  • Methods

    • hasOwnProperty()

      객체가 특정 프로퍼티를 가지고 있는지를 블린(boolean) 값으로 반환한다.

    • isPrototypeOf()

      해당 객체가 다른 객체의 프로토타입 체인에 속한 객체인지를 체크한다.

    • propertyIsEnumerable()

      매개 변수의 속성이 열거가능(enumerable)한지 여부를 체크한다.

    • toLocaleString()

      객체를 나타내는 문자열을  작동하는 지역(locale)의 방식으로 출력이 된다.

    • toString()

      객체를 나타내는 문자열을 반환한다.

    • valueOf()

      객체의 원시(primitive) 값을 반환한다.

  • Properties

    • constructor

      객체의 생성자 함수를 참조한다.

    • __proto__

      상속된 [[Prototype]] 참조하거나 설정가능하며 일반적으로 실제 코드상에서는 잘 사용되지 않는다. ECMAScript에서 사용되지 않는 비표준이지만 최신 웹브라우저에서는 비공식적으로 지원하고 있다. 따라서 곧 표준 속성으로 지원될 확률이 높다.

      현재는 표준 사양에 명시되었다.

기술 문서

정규표현식 객체 생성

RegExp 객체를 만들 때는 리터럴 표기와 생성자로 2가지 방법을 사용할 수 있다. 리터럴 표기의 매개변수는 양쪽을 슬래시(/)로 감싸고 따옴표를 사용하지 않는 반면, 생성자 함수의 경우 슬래시 대신 따옴표를 사용한다.

아래의 코드는 모두 동일한 정규 표현식을 생성한다.

/[a-z]/i;
new RegExp(/[a-z]/, 'i'); // 리터럴 표기
new RegExp('a-z', 'i'); // 생성자

정규식 특수 문자

문자의미
\

정규 표현식으로 사용되는 특수 문자가 아닌 문자 앞에 사용되는 경우 특별한 의미로 사용되며 문자 그대로 해석되지 않음을 의미한다.

정규 표현식으로 사용되는 특수 문자 앞에 사용되는 경우는 정규표현식의 예약된 특수문자로 해석되지 않고 일반 문자처럼 다루어진다.

^정규 표현식의 테스트될 문자열의 시작 부분과 대응한다.
$정규 표현식의 테스트될 문자열의 끝 부분과 대응한다.
*직전 표현식이 0회 이상 연속으로 반복되는 부분과 대응한다.
+직전 표현식이 1회 이상 연속으로 반복되는 부분과 대응한다.
?이전 표현식이 0 또는 1회 나타나는 부분과 대응한다.
.개행 문자를 제외한 모든 단일 문자와 대응한다.
(x)괄호안의 문자열과 대응하고 그것을 기억한다.
(?:x)x에 대응하지만 대응된 것을 기억하지 않는다.

플래그(flag)

flag설명
g처음 일치에서 중단하지 않고 문자열 전체를 판별한다.
i대소문자를 무시
m

시작 혹은 끝 문자(^$)가 여러 줄에 적용되도록 한다. 즉 전체 입력 문자열의 맨 처음과 맨 끝뿐만이 아니라(\n이나 \r로 구분되는) 모든 줄의 처음과 끝에 적용된다.

s.문자가 줄바꿈을 포함한 모든 문자에 일치한다.
u패턴을 유니코드 코드 포인트 열로 처리한다.
y정규표현식의 lastIndex 속성에 명시된 인덱스에서만 판별하고 이전/이후 인덱스에서 판별을 시도하지 않는다.

외부 리소스

정규표현식 테스트 도구
웹 기반의 다양한 언어의 정규표현식 테스트 도구
정규표현식 토큰
정규표현식의 패턴 작성에 사용되는 토큰 소개

지원 웹브라우저