From 5e597cf40fad34371e754bc53e91c13943beea0b Mon Sep 17 00:00:00 2001 From: martincupela Date: Fri, 19 Dec 2025 10:50:29 +0100 Subject: [PATCH] fix: escape strings interpolated into regular expressions --- .../middleware/textComposer/textMiddlewareUtils.ts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/messageComposer/middleware/textComposer/textMiddlewareUtils.ts b/src/messageComposer/middleware/textComposer/textMiddlewareUtils.ts index 783ed93d8..f47ec91fd 100644 --- a/src/messageComposer/middleware/textComposer/textMiddlewareUtils.ts +++ b/src/messageComposer/middleware/textComposer/textMiddlewareUtils.ts @@ -16,15 +16,16 @@ export const getTriggerCharWithToken = ({ isCommand?: boolean; acceptTrailingSpaces?: boolean; }) => { - const triggerNorWhitespace = `[^\\s${trigger}]*`; + const escapedTrigger = escapeRegExp(trigger); + const triggerNorWhitespace = `[^\\s${escapedTrigger}]*`; const match = text.match( new RegExp( isCommand - ? `^[${trigger}]${triggerNorWhitespace}$` + ? `^[${escapedTrigger}]${triggerNorWhitespace}$` : acceptTrailingSpaces - ? `(?!^|\\W)?[${trigger}]${triggerNorWhitespace}\\s?${triggerNorWhitespace}$` - : `(?!^|\\W)?[${trigger}]${triggerNorWhitespace}$`, + ? `(?!^|\\W)?[${escapedTrigger}]${triggerNorWhitespace}\\s?${triggerNorWhitespace}$` + : `(?!^|\\W)?[${escapedTrigger}]${triggerNorWhitespace}$`, 'g', ), );