Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion web/src/pages/RulesPanel.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -100,8 +100,12 @@ export function parseOperand(op: string, text: string): unknown | undefined {
const t = text.trim();
if (!t) return undefined;
if (kind === "set") {
// **全角逗号也是分隔符**:中文输入法敲出来的逗号是「,」。从前只认半角,
// 「气测异常,气测异常后效」存成了一个成员——「属于」永不成立,
// 「不属于」对任何值都成立。metadataOnly 故意不锁含「,」的成员,好让
// 这样存下的旧规则打开再保存一次就修好;代价是经 API 写进的也会被拆开
const set = t
.split(",")
.split(/[,,]/)
.map((s) => s.trim())
.filter(Boolean);
return set.length ? set : undefined;
Expand Down
9 changes: 9 additions & 0 deletions web/src/pages/ruleSetOperands.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { describe, expect, it } from "vitest";
import { parseOperand } from "./RulesPanel";

describe("rule set operands", () => {
it.each(["in", "not_in"])("splits %s members on the comma a Chinese input method types", (op) => {
expect(parseOperand(op, "气测异常,气测异常后效")).toEqual(["气测异常", "气测异常后效"]);
expect(parseOperand(op, "气测异常,气测异常后效, 气层")).toEqual(["气测异常", "气测异常后效", "气层"]);
});
});
Loading