update
This commit is contained in:
@@ -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",
|
||||
|
||||
@@ -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
12
test/test-and.ts
Normal 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));
|
||||
Reference in New Issue
Block a user