정규식이란 무엇인가?
정규식(Regular Expression)은 문자열의 패턴을 표현하는 객체입니다. 자바스크립트에서는 RegExp 클래스가 정규식을 나타내며, String 객체와 RegExp 객체 모두 정규식을 활용해 강력한 패턴 매칭(pattern-matching)과 검색 및 치환(search-and-replace) 기능을 수행할 수 있는 메서드를 제공합니다.
예를 들어 문자열에서 특정 단어를 찾거나, 이메일 주소 형식을 검증하거나, 텍스트의 일부를 다른 값으로 일괄 변경하는 작업을 정규식 하나로 손쉽게 처리할 수 있습니다.
정규식을 정의하는 두 가지 방법
자바스크립트에서 정규식은 RegExp() 생성자를 사용하거나 리터럴 표기법을 사용하여 정의할 수 있습니다.
var pattern = new RegExp(pattern, attributes);
또는 아래와 같이 슬래시(/)로 감싸는 리터럴 방식으로 정의합니다.
var pattern = /pattern/attributes;
주요 매개변수 설명
- pattern − 정규식의 패턴을 지정하는 문자열 또는 다른 정규식 객체입니다.
- attributes − 선택 사항으로, 매칭 동작을 제어하는 플래그를 담는 문자열입니다. 사용 가능한 속성은 다음과 같습니다.
- g − 전역 매칭(global): 패턴과 일치하는 모든 결과를 찾습니다.
- i − 대소문자 구분 없음(case-insensitive): 대문자와 소문자를 구별하지 않고 매칭합니다.
- m − 여러 줄 매칭(multiline): 여러 줄에 걸친 문자열에서도 행 단위로 패턴을 검사합니다.
생성자 방식 vs 리터럴 방식
리터럴 방식은 코드가 간결하고 성능상 유리하여 일반적으로 권장됩니다. 반면 RegExp() 생성자 방식은 실행 시점에 패턴을 동적으로 조합해야 하는 경우, 예를 들어 사용자 입력값으로부터 패턴을 만들어야 할 때 유용합니다.