JavaScript 입문 | 정규 표현식 | RegExp 객체

RegExp 객체

RegExp 객체는 정규 표현식을 구현한 자바스크립트 표준 내장 객체이다.

RegExp 객체를 생성하는 문법은 다음과 같다.

문법

new RegExp(검색패턴[, 플래그]);
  1. 검색 패턴을 나타내는 정규 표현식은 따옴표나 슬래시(/)로 감싸야 한다.
  2. 기본 검색 설정을 변경할 수 있는 플래그는 필요할 때만 전달할 수 있다.

RegExp.prototype 메소드

모든 RegExp 인스턴스는 RegExp.prototype으로부터 메소드와 프로퍼티를 상속받는다. 이렇게 상속받은 RegExp.prototype 메소드를 사용하여 정규 표현식을 표현할 수 있다.

  1. RegExp.prototype.exec()
  2. RegExp.prototype.test()

exec() 메소드

exec() 메소드는 인수로 전달된 문자열에서 특정 패턴을 검색하여, 패턴과 일치하는 문자열을 반환한다. 만약에 패턴과 일치하는 문자열이 없으면 null을 반환한다.

var targetStr = "abbcdefabgh";
var firstResult = /ab+/.exec(targetStr);    // 패턴과 일치하는 문자열이 여러 개인 경우
var secondResult = /abbb+/.exec(targetStr); // 패턴과 일치하는 문자열이 하나도 없는 경우
firstResult;  // abb -> 가장 맨 처음으로 일치하는 문자열이 반환됨.
secondResult; // null

test() 메소드

test() 메소드는 인수로 전달된 문자열에 특정 패턴과 일치하는 문자열이 있는지를 검색합니다
만약에 패턴과 일치하는 문자열이 있으면 true를, 없으면 false를 반환한다.

var targetStr = "abbcdefabgh";
var firstResult = /ab+/.test(targetStr);    // 패턴과 일치하는 문자열이 여러 개인 경우
var secondResult = /abbb+/.test(targetStr); // 패턴과 일치하는 문자열이 하나도 없는 경우
firstResult;  // true
secondResult; // false

자바스크립트 RegExp.prototype 메소드

메소드 설명
exec() 인수로 전달된 문자열에서 특정 패턴을 검색하여, 패턴과 일치하는 문자열을 반환함.
test() 인수로 전달된 문자열에 특정 패턴과 일치하는 문자열이 있는지를 검색하여, 그 결과를 불리언 값으로 반환함.
toString() RegExp 객체의 정규 표현식과 같은 의미를 가지는 정규 표현식 리터럴 문자열을 반환함.

자바스크립트는 정규 표현식에서 사용하는 다양한 정보를 RegExp.prototype 프로퍼티를 이용해 제공하고 있다.

  1. RegExp.prototype.global
  2. RegExp.prototype.ignoreCase
  3. RegExp.prototype.multiline
  4. RegExp.prototype.source

자바스크립트 RegExp.prototype 프로퍼티

프로퍼티 설명
global 검색 패턴을 비교할 때 일치하는 모든 부분을 선택하도록 설정하는 플래그인 ‘g’를 가리킴.
ignoreCase 검색 패턴을 비교할 때 대소문자를 구분하지 않도록 설정하는 플래그인 ‘i’를 가리킴.
multiline 검색 패턴을 비교할 때 여러 줄의 입력 문자열을 그 상태 그대로 여러 줄로 비교하도록 설정하는 플래그인 ’m’을 가리킴.
source 검색 패턴이 포함하고 있는 문자열을 가리킴.