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 && (
+
+ )}