Skip to content

Commit 999fdde

Browse files
fix: filter algorithm with less match
1 parent dcb1458 commit 999fdde

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

src/utils/filter.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
export function matchCharactersWithRegex(word: string, searchTerm: string) {
22
const escapedSearchTerm = searchTerm.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
33

4+
// Construct a regex pattern that enforces order but allows small gaps
45
const regexPattern = escapedSearchTerm
56
.split("")
6-
.map((char) => `(?=.*${char})`)
7+
.map((char, index) => (index === 0 ? char : `[^${char}]{0,2}${char}`)) // Allow at most 2 non-matching chars between each
78
.join("");
89

910
const regex = new RegExp(regexPattern, "i"); // 'i' flag for case-insensitive matching

0 commit comments

Comments
 (0)