개발을 하다 보면, 처음 보면 알 수 없는 기호들(^
, *
, .
등)으로 이루어진 무언가를 마주칠 수 있습니다. 바로 정규표현식입니다. 당황스럽고 무슨 뜻인지도 모르겠고, 외우자니 너무 복잡해보입니다.
하지만, 한 번 제대로 익혀두면 입력 검증, 텍스트 추출, 문자열 치환 등 다양하게 사용할 수 있습니다.
예를 들면, 다음과 같은 상황에서 정규표현식을 활용하면 한 줄로 깔끔하게 구현할 수 있습니다.
정규표현식을 사용하지 않는다면 여러 if
와 substring
을 사용해 여러 줄의 복잡한 코드를 구현해야 합니다.
정규표현식은 다양한 메타 문자를 사용해 문자열의 규칙을 정의합니다. /
(슬래시)문자 사이에 정규식 기호를 사용해 패턴을 만들어 입력하고, 필요한 경우 flag로 검색시 옵션을 설정할 수 있습니다.
정규표현식 만들기
JavaScript에서는 정규표현식을 RegExp
객체로 표현합니다.
기본적으로는 리터럴 방식으로 /.../
슬래시로 감싸서 작성합니다. 간단하고 직관적입니다.
스크립트를 불러올 때 컴파일되므로 바뀔일 없는 패턴은 리터럴 방식으로 작성시에 성능을 향상시킬 수 있습니다.
const regex = /a/;
동적으로 패턴을 만들어야 할 때는 생성자 RegExp
를 사용하는 방식을 사용합니다. 문자열로 패턴을 전달하므로 이스케이프 처리를 신경써야합니다.
생성자 함수 표현식은 런타임에 컴파일되므로 바뀔 수 있는 패턴이나 사용자가 입력한 값을 정규식으로 만들 때 사용됩니다.
const pattern = 'a';
const regex = new RegExp(pattern); // /a/