문자열 변수로 JavaScript 정규식 만들기
네, 가능합니다. JavaScript에서는 new RegExp(pattern, flags) 생성자를 사용하면 문자열 변수를 기반으로 동적으로 정규식을 만들 수 있습니다.
일반적으로 정규식은 슬래시 표기법(/pattern/flags)으로 작성하지만, 이 방식은 패턴이 코드 작성 시점에 고정되어야 한다는 한계가 있습니다. 반면 RegExp 생성자는 패턴과 플래그를 문자열로 전달받기 때문에, 사용자 입력이나 API 응답처럼 런타임에 결정되는 값으로도 정규식을 자유롭게 조합할 수 있습니다.
기본 문법
new RegExp(pattern, flags)
- pattern: 정규식 패턴을 담고 있는 문자열
- flags: 검색 옵션 (예:
i는 대소문자 구분 없음,g는 전역 검색)
예제 코드
다음 예제에서는 문자열 변수로 만든 정규식을 사용해 HelloWorld에서 hello를 대소문자 구분 없이 찾아 제거합니다.
<!DOCTYPE html>
<html>
<body>
<script>
var str = 'HelloWorld'.replace( new RegExp('hello', 'i'), '' );
document.write(str);
</script>
</body>
</html>
실행 결과
World
i 플래그 덕분에 원본 문자열의 Hello와 패턴 hello의 대소문자가 달라도 정상적으로 매칭되어 제거됩니다. 그 결과 화면에는 World만 출력됩니다.
이처럼 RegExp 생성자를 활용하면 실행 중에 동적으로 결정되는 값을 정규식 패턴에 포함시킬 수 있어, 검색 필터나 유효성 검사 등 유연한 문자열 처리에 매우 유용합니다.