From 9ff4acf092b974a174cd48f1531f1cd45c3a1a28 Mon Sep 17 00:00:00 2001 From: Konv Suu <2583695112@qq.com> Date: Thu, 4 Sep 2025 13:15:02 +0800 Subject: [PATCH] fix: regex pattern error when update manual blacklist (#9871) --- .../WebSearchSettings/BlacklistSettings.tsx | 28 ++++++++++++++----- 1 file changed, 21 insertions(+), 7 deletions(-) diff --git a/src/renderer/src/pages/settings/WebSearchSettings/BlacklistSettings.tsx b/src/renderer/src/pages/settings/WebSearchSettings/BlacklistSettings.tsx index de94587e2f..47852fd080 100644 --- a/src/renderer/src/pages/settings/WebSearchSettings/BlacklistSettings.tsx +++ b/src/renderer/src/pages/settings/WebSearchSettings/BlacklistSettings.tsx @@ -71,15 +71,27 @@ const BlacklistSettings: FC = () => { function updateManualBlacklist(blacklist: string) { const blacklistDomains = blacklist.split('\n').filter((url) => url.trim() !== '') - const validDomains: string[] = [] const hasError = blacklistDomains.some((domain) => { - const parsed = parseMatchPattern(domain.trim()) - if (parsed === null) { - return true // 有错误 + const trimmedDomain = domain.trim() + // 正则表达式 + if (trimmedDomain.startsWith('/') && trimmedDomain.endsWith('/')) { + try { + const regexPattern = trimmedDomain.slice(1, -1) + new RegExp(regexPattern, 'i') + validDomains.push(trimmedDomain) + return false + } catch (error) { + return true + } + } else { + const parsed = parseMatchPattern(trimmedDomain) + if (parsed === null) { + return true + } + validDomains.push(trimmedDomain) + return false } - validDomains.push(domain.trim()) - return false }) setErrFormat(hasError) @@ -237,7 +249,9 @@ const BlacklistSettings: FC = () => { - {errFormat && } + {errFormat && ( + + )}