문자열로 되어 있는 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 함수를 이용하여 실행해주면 됩니다.
반응형
'공유 > JavaScript, TypeScript' 카테고리의 다른 글
[JS] ?? 와 || 연산자 차이 (0) | 2024.10.22 |
---|---|
[JS,TS] 문자열에 있는 uuid 제거하기 (0) | 2024.10.21 |
[JS,TS] 문자열로 되어 있는 정규식 실행하기 (0) | 2024.10.21 |
[dayjs] DayJS를 이용하여 날짜 다루기 (0) | 2024.08.22 |
[JS/TS] 서아라비아, 동아라비아 숫자 변환하기 (0) | 2024.08.02 |