본문으로 바로가기

문자열로 되어 있는 new Date 함수 실행하기

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


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

date: {
  $gte: new Date("날짜"),
  $lte: new Date("날짜")
}

코드

const dateStrings = obj[key].match(/new Date\("(.+?)"\)/);
if (dateStrings) {
  obj[key] = new Date(dateStrings[1]);
}

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

반응형