From 188c5f7219e28e3336de81f30b6db6c77b7d28d9 Mon Sep 17 00:00:00 2001 From: Leonabcd123 <156839416+Leonabcd123@users.noreply.github.com> Date: Sat, 1 Aug 2026 11:29:01 +0300 Subject: [PATCH 1/5] impr(regex-words-filter): allow patterns without slashes (@Leonabcd123) --- frontend/src/ts/components/modals/WordFilterModal.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/frontend/src/ts/components/modals/WordFilterModal.tsx b/frontend/src/ts/components/modals/WordFilterModal.tsx index 4380c82cc815..10d57379bd0f 100644 --- a/frontend/src/ts/components/modals/WordFilterModal.tsx +++ b/frontend/src/ts/components/modals/WordFilterModal.tsx @@ -133,8 +133,12 @@ function filterWordList( // Separates string into regex expression let reglit = new RegExp(""); try { - const flags = value.regex.replace(/.*\/([gimy]*)$/, "$1"); - const pattern = value.regex.replace(new RegExp(`^/(.*?)/${flags}$`), "$1"); + let flags = ""; + let pattern = value.regex; + if (value.regex.startsWith("/")) { + flags = value.regex.replace(/.*\/([gimy]*)$/, "$1"); + pattern = value.regex.replace(new RegExp(`^/(.*?)/${flags}$`), "$1"); + } reglit = new RegExp(pattern, flags); } catch (error) { if (error instanceof SyntaxError) { From 110e4b80719707079541880afab2574458bacd84 Mon Sep 17 00:00:00 2001 From: Leonabcd123 <156839416+Leonabcd123@users.noreply.github.com> Date: Sat, 1 Aug 2026 11:47:09 +0300 Subject: [PATCH 2/5] Reg --- frontend/src/ts/components/modals/WordFilterModal.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/ts/components/modals/WordFilterModal.tsx b/frontend/src/ts/components/modals/WordFilterModal.tsx index 10d57379bd0f..ca858cc301ac 100644 --- a/frontend/src/ts/components/modals/WordFilterModal.tsx +++ b/frontend/src/ts/components/modals/WordFilterModal.tsx @@ -135,7 +135,7 @@ function filterWordList( try { let flags = ""; let pattern = value.regex; - if (value.regex.startsWith("/")) { + if (/(? Date: Sat, 1 Aug 2026 19:36:54 +0300 Subject: [PATCH 3/5] Better --- frontend/src/ts/components/modals/WordFilterModal.tsx | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/frontend/src/ts/components/modals/WordFilterModal.tsx b/frontend/src/ts/components/modals/WordFilterModal.tsx index ca858cc301ac..0f4fd8d1fe4c 100644 --- a/frontend/src/ts/components/modals/WordFilterModal.tsx +++ b/frontend/src/ts/components/modals/WordFilterModal.tsx @@ -133,13 +133,10 @@ function filterWordList( // Separates string into regex expression let reglit = new RegExp(""); try { - let flags = ""; - let pattern = value.regex; - if (/(?.*?)/(?[gimy]*)$").exec( + value.regex, + ) ?? { groups: { pattern: value.regex, flags: "" } }; + reglit = new RegExp(match.groups?.pattern ?? "", match.groups?.flags); } catch (error) { if (error instanceof SyntaxError) { return { error: "Invalid Regex Expression" }; From 7a7138128ad365387030fa19add5c75a7c17163a Mon Sep 17 00:00:00 2001 From: Leonabcd123 <156839416+Leonabcd123@users.noreply.github.com> Date: Sat, 1 Aug 2026 19:42:13 +0300 Subject: [PATCH 4/5] Remove --- .../src/ts/components/modals/WordFilterModal.tsx | 16 ++++------------ 1 file changed, 4 insertions(+), 12 deletions(-) diff --git a/frontend/src/ts/components/modals/WordFilterModal.tsx b/frontend/src/ts/components/modals/WordFilterModal.tsx index 0f4fd8d1fe4c..09d58a836aa2 100644 --- a/frontend/src/ts/components/modals/WordFilterModal.tsx +++ b/frontend/src/ts/components/modals/WordFilterModal.tsx @@ -131,18 +131,10 @@ function filterWordList( // Source - https://stackoverflow.com/a/874742 // Retrieved 2026-06-23, License - CC BY-SA 3.0 // Separates string into regex expression - let reglit = new RegExp(""); - try { - const match = new RegExp("^/(?.*?)/(?[gimy]*)$").exec( - value.regex, - ) ?? { groups: { pattern: value.regex, flags: "" } }; - reglit = new RegExp(match.groups?.pattern ?? "", match.groups?.flags); - } catch (error) { - if (error instanceof SyntaxError) { - return { error: "Invalid Regex Expression" }; - } - return { error: String(error) }; - } + const match = new RegExp("^/(?.*?)/(?[gimy]*)$").exec( + value.regex, + ) ?? { groups: { pattern: value.regex, flags: "" } }; + const reglit = new RegExp(match.groups?.pattern ?? "", match.groups?.flags); let filterin = Misc.escapeRegExp(value.include.trim()); filterin = filterin.replace(/\s+/gi, "|"); From c39d2cfe17f346f5b3f7be753e0a4cdeb071dcc9 Mon Sep 17 00:00:00 2001 From: Leonabcd123 <156839416+Leonabcd123@users.noreply.github.com> Date: Sat, 1 Aug 2026 19:45:44 +0300 Subject: [PATCH 5/5] Flags --- frontend/src/ts/components/modals/WordFilterModal.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontend/src/ts/components/modals/WordFilterModal.tsx b/frontend/src/ts/components/modals/WordFilterModal.tsx index 09d58a836aa2..615650611240 100644 --- a/frontend/src/ts/components/modals/WordFilterModal.tsx +++ b/frontend/src/ts/components/modals/WordFilterModal.tsx @@ -131,7 +131,7 @@ function filterWordList( // Source - https://stackoverflow.com/a/874742 // Retrieved 2026-06-23, License - CC BY-SA 3.0 // Separates string into regex expression - const match = new RegExp("^/(?.*?)/(?[gimy]*)$").exec( + const match = new RegExp("^/(?.*?)/(?[gimydsuv]*)$").exec( value.regex, ) ?? { groups: { pattern: value.regex, flags: "" } }; const reglit = new RegExp(match.groups?.pattern ?? "", match.groups?.flags);