diff --git a/frontend/src/components/v2/HighlightText/HighlightText.tsx b/frontend/src/components/v2/HighlightText/HighlightText.tsx index 7f7bd6bee..3ce7c8f19 100644 --- a/frontend/src/components/v2/HighlightText/HighlightText.tsx +++ b/frontend/src/components/v2/HighlightText/HighlightText.tsx @@ -18,19 +18,21 @@ export const HighlightText = ({ const escapedSearchTerm = searchTerm.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"); const regex = new RegExp(escapedSearchTerm, "gi"); - for (const match of text.matchAll(regex)) { - if (match.index > lastIndex) { - parts.push({text.substring(lastIndex, match.index)}); + text.replace(regex, (match: string, offset: number) => { + if (offset > lastIndex) { + parts.push({text.substring(lastIndex, offset)}); } parts.push( - - {match[0]} + + {match} ); - lastIndex = match.index + match[0].length; - } + lastIndex = offset + match.length; + + return match; + }); if (lastIndex < text.length) { parts.push({text.substring(lastIndex)});