From 79e6699b3750df1ebc7597841d8a788bb5059ac6 Mon Sep 17 00:00:00 2001 From: Vikrant Gupta Date: Mon, 22 Jan 2024 19:06:33 +0530 Subject: [PATCH] fix: logs page crash when special chars present in the value of query (#4408) --- .../QueryBuilder/filters/QueryBuilderSearch/utils.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/frontend/src/container/QueryBuilder/filters/QueryBuilderSearch/utils.ts b/frontend/src/container/QueryBuilder/filters/QueryBuilderSearch/utils.ts index e767550be7..c549a6fd62 100644 --- a/frontend/src/container/QueryBuilder/filters/QueryBuilderSearch/utils.ts +++ b/frontend/src/container/QueryBuilder/filters/QueryBuilderSearch/utils.ts @@ -122,8 +122,17 @@ export function replaceStringWithMaxLength( if (lastSearchValue === '') { return `${mainString}${replacementString},`; } + /** + * We need to escape the special characters in the lastSearchValue else the + * new RegExp fails with error range out of order in char class + */ + const escapedLastSearchValue = lastSearchValue.replace( + /[-/\\^$*+?.()|[\]{}]/g, + '\\$&', + ); + const updatedString = mainString.replace( - new RegExp(`${lastSearchValue}(?=[^${lastSearchValue}]*$)`), + new RegExp(`${escapedLastSearchValue}(?=[^${escapedLastSearchValue}]*$)`), replacementString, ); return `${updatedString},`;