본문으로 바로가기

문자열로 되어 있는 정규식 실행하기

로그를 이용하여 사용자 행동 패턴 분석을 확인할 수 있는 서비스를 구현하고 있습니다.
프론트에서 aggregation 명령어를 작성하여 문자열 그대로 서버에 전송하여, 서버에서 문자열을 파싱하여 제대로 된 aggregation 명령어로 변환 후 실행합니다.


이 경우 프론트에서 new RegExp("정규식") 함수를 작성하게 되면 문자열이기 때문에 서버에서 제대로 처리를 할 수 없습니다.
모든 경우가 아래처럼 key, value 형태인 객체로 되어 있습니다.
아래 형태가 모두 문자열이라고 가정하고 new RegExp 어떻게 실행시킬 수 있을까, 실행하는 방법을 알아보도록 하겠습니다.

코드

const regexs = obj[key].match(/new RegExp\((.+?)\)/);
if (regexs) {
  const regexString = regexs[1];
  obj[key] = new RegExp(regexString);
}

위처럼 간단하게 정규식을 이용하여 new RegExp("정규식") 함수 내에 있는 "정규식"를 뽑아내면 됩니다.
그리고 new RegExp 함수를 이용하여 실행해주면 됩니다.

반응형