From efc9c5dd584f7432c67460ae5ef515accc09e2dd Mon Sep 17 00:00:00 2001 From: GoEdgeLab Date: Wed, 27 Sep 2023 15:24:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E5=AF=B9=E8=BE=93=E5=85=A5=E9=97=AE=E5=8F=B7=E7=9A=84?= =?UTF-8?q?=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../js/components/common/url-patterns-box.js | 30 +++++++++++++++++-- 1 file changed, 27 insertions(+), 3 deletions(-) diff --git a/web/public/js/components/common/url-patterns-box.js b/web/public/js/components/common/url-patterns-box.js index c77d009b..6755317a 100644 --- a/web/public/js/components/common/url-patterns-box.js +++ b/web/public/js/components/common/url-patterns-box.js @@ -10,7 +10,9 @@ Vue.component("url-patterns-box", { isAdding: false, addingPattern: {"type": "wildcard", "pattern": ""}, - editingIndex: -1 + editingIndex: -1, + + patternIsInvalid: false } }, methods: { @@ -71,6 +73,27 @@ Vue.component("url-patterns-box", { }, notifyChange: function () { this.$emit("input", this.patterns) + }, + changePattern: function () { + this.patternIsInvalid = false + let pattern = this.addingPattern.pattern + switch (this.addingPattern.type) { + case "wildcard": + if (pattern.indexOf("?") >= 0) { + this.patternIsInvalid = true + } + break + case "regexp": + if (pattern.indexOf("?") >= 0) { + let pieces = pattern.split("?") + for (let i = 0; i < pieces.length - 1; i++) { + if (pieces[i].length == 0 || pieces[i][pieces[i].length - 1] != "\\") { + this.patternIsInvalid = true + } + } + } + break + } } }, template: `
@@ -90,14 +113,15 @@ Vue.component("url-patterns-box", {
- + +

通配符正则表达式中不能包含问号(?)及问号以后的内容。

- +