This commit is contained in:
2026-01-05 14:44:55 +08:00
parent ae4fcacd9d
commit a948118eb9
3 changed files with 17 additions and 5 deletions

View File

@@ -1,6 +1,6 @@
{
"name": "@kevisual/js-filter",
"version": "0.0.3",
"version": "0.0.4",
"description": "用于 JavaScript 数组的 SQL LIKE 过滤器函数",
"main": "dist/index.js",
"types": "dist/index.d.ts",

View File

@@ -33,10 +33,10 @@ class Lexer {
}
}
private readString(): string {
private readString(quote: string): string {
this.pos++;
let result = '';
while (this.pos < this.input.length && this.input[this.pos] !== "'") {
while (this.pos < this.input.length && this.input[this.pos] !== quote) {
result += this.input[this.pos];
this.pos++;
}
@@ -76,8 +76,8 @@ class Lexer {
const char = this.input[this.pos];
if (char === "'") {
return { type: 'STRING', value: this.readString(), pos: this.pos };
if (char === "'" || char === '"') {
return { type: 'STRING', value: this.readString(char), pos: this.pos };
}
if (/\d/.test(char)) {

12
test/test-and.ts Normal file
View File

@@ -0,0 +1,12 @@
import { filter } from '../src/index.ts';
const data = [
{ path: 'good', key: 'searchInfo', value: 1 },
{ path: 'good', key: 'other', value: 2 },
{ path: 'bad', key: 'searchInfo', value: 3 },
];
// 测试使用 AND 和双引号
console.log('Testing: WHERE path = \'good\' AND key = "searchInfo"');
const result = filter(data, 'WHERE path = \'good\' AND key = "searchInfo"');
console.log('Result:', JSON.stringify(result, null, 2));