diff --git a/packages/grafana-data/src/text/text.ts b/packages/grafana-data/src/text/text.ts index 5b98ba11a6a..0791641a9dc 100644 --- a/packages/grafana-data/src/text/text.ts +++ b/packages/grafana-data/src/text/text.ts @@ -24,7 +24,7 @@ export function findHighlightChunksInText({ } const cleanNeedle = (needle: string): string => { - return needle.replace(/[[{(][\w,.-?:*+]+$/, ''); + return needle.replace(/[[{(][\w,.\/:;<=>?:*+]+$/, ''); }; /** @@ -35,14 +35,17 @@ export function findMatchesInText(haystack: string, needle: string): TextMatch[] if (!haystack || !needle) { return []; } + const matches: TextMatch[] = []; const { cleaned, flags } = parseFlags(cleanNeedle(needle)); let regexp: RegExp; + try { regexp = new RegExp(`(?:${cleaned})`, flags); } catch (error) { return matches; } + haystack.replace(regexp, (substring, ...rest) => { if (substring) { const offset = rest[rest.length - 2]; @@ -55,6 +58,7 @@ export function findMatchesInText(haystack: string, needle: string): TextMatch[] } return ''; }); + return matches; }