From e94b8edacc69e18b4906f90711375c679acffbd1 Mon Sep 17 00:00:00 2001 From: Stefano Pigozzi <me@steffo.eu> Date: Fri, 4 Oct 2024 13:19:09 +0200 Subject: [PATCH] Do not save state between regex executions Fixes #843. See https://stackoverflow.com/questions/2630418/javascript-regex-returning-true-then-false-then-true-etc for more information! --- src/utils/enhance-content.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/utils/enhance-content.js b/src/utils/enhance-content.js index 6796341d..15c215bd 100644 --- a/src/utils/enhance-content.js +++ b/src/utils/enhance-content.js @@ -19,15 +19,15 @@ function escapeHTML(html) { const LINK_REGEX = /<a/i; const HTTP_LINK_REGEX = /^https?:\/\//i; -const MENTION_REGEX = /^@[^@]+(@[^@]+)?$/g; -const HASHTAG_REGEX = /^#[^#]+$/g; -const CODE_BLOCK_REGEX = /^```[^]+```$/g; -const CODE_BLOCK_START_REGEX = /^```/g; -const CODE_BLOCK_END_REGEX = /```$/g; -const INLINE_CODE_REGEX = /`[^`]+`/g; +const MENTION_REGEX = /^@[^@]+(@[^@]+)?$/; +const HASHTAG_REGEX = /^#[^#]+$/; +const CODE_BLOCK_REGEX = /^```[^]+```$/; +const CODE_BLOCK_START_REGEX = /^```/; +const CODE_BLOCK_END_REGEX = /```$/; +const INLINE_CODE_REGEX = /`[^`]+`/; const TWITTER_DOMAIN_REGEX = /(twitter|x)\.com/i; -const TWITTER_MENTION_REGEX = /@[a-zA-Z0-9_]+@(twitter|x)\.com/g; -const TWITTER_MENTION_CAPTURE_REGEX = /(@([a-zA-Z0-9_]+)@(twitter|x)\.com)/g; +const TWITTER_MENTION_REGEX = /@[a-zA-Z0-9_]+@(twitter|x)\.com/; +const TWITTER_MENTION_CAPTURE_REGEX = /(@([a-zA-Z0-9_]+)@(twitter|x)\.com)/; function createDOM(html, isDocumentFragment) { const tpl = document.createElement('template');