介绍
fuse-checkmark 是一个基于 Fuse.js 的中英文字符模糊匹配工具,适用于前端和 Node.js 环境。使用 Fuse.js 的模糊匹配算法,快速找到最相似的字符串,且中英文字符均有支持。该工具封装了一些常用的模糊匹配设置,并提供了一些使用的便捷方式。
安装
你可以通过使用 npm 包管理器安装 fuse-checkmark:
npm install fuse-checkmark --save
使用
以下是 fuse-checkmark 的使用方式:
-- -------------------- ---- ------- ----- - ------------- - - ------------------------- ----- ---- - - ------ -------- --- --- ------ --------- --- --- ------ --------- --- --- ------ -------- --- -- - ----- ------ - ------------------- -------- ------- -------------------
运行结果是:
[ { name: 'peach', id: 4 } ]
在以上代码中,我们通过引入了 fuse-checkmark 模块,然后将需要匹配的列表和待匹配的字符串传递给 fuseCheckmark 函数。可以通过第三个参数指定进行匹配的属性名(name),返回的结果是一个数组,包含了与待匹配字符串最相似的对象。
API
fuseCheckmark(list, query, key)
list
:需要匹配的列表,数组类型,每个元素是一个对象。query
:待匹配的字符串。key
:指定进行匹配的属性名,可选项,默认为name
。
返回与待匹配字符串最相似的元素数组。
fuseCheckmarkList(list, query, options)
list
:需要匹配的列表,数组类型,每个元素是一个对象。query
:待匹配的字符串。options
:可选项对象,可包含以下属性:keys
:指定进行匹配的属性集合,数组类型,默认为['name']
。minMatchCharLength
:指定最小匹配到字符长度,整数类型,默认为1
。threshold
:指定匹配阈值,浮点数类型,范围在0
~`1,默认为
0.6`。limit
:指定匹配结果数的限制,整数类型,默认为10
。
返回与待匹配字符串最相似的结果数组。
示例
以下是一个使用较为详细的示例:
-- -------------------- ---- ------- ----- - ----------------- - - ------------------------- ----- ---- - - ------ ------ ------- ----- ------ ------- ------ ----- --- ---- ------ ------- ------ ------- -------- -- -------- ------ ------- ------ ----- ------- --- ---- ------ ------- ------ --- ------- ------ ------ ------- - ----- ------ - --------- ----- -------- - - ----- --------- ------------------- -- ---------- ---- ------ - - ----- ------- - ----------------------- ------- --------- ----------------------- -------- ----- ------ - --- ---- ---- ----- -------- - - ----- --------- ------------------- -- ---------- ---- ------ - - ----- ------- - ----------------------- ------- --------- ----------------------- -------- ----- ------ - ------- ----- -------- - - ----- ---------- ------------------- -- ---------- ---- ------ -- - ----- ------- - ----------------------- ------- --------- ----------------------- --------
运行结果是:
result1: [ { name: 'Apple Macbook Pro', price: 18888 } ] result2: [ { name: 'ASUS Zenbook Pro 14', price: 11999 } ] result3: []
以上代码中,我们先定义了一个列表数组,然后使用 fuseCheckmarkList 函数进行不同的匹配操作。在第一个例子中,我们通过指定匹配的属性为 name,设置了最小匹配字符长度为 2,阈值为 0.3,限制了最多匹配 3 条结果,匹配结果返回了与待匹配字符串最相似的结果。在第二个例子中,我们使用了一个更加复杂的字符串,并且指定了四种匹配属性,设置的阈值比第一个例子要高一些,返回的结果中包含了 Asus Zenbook Pro 14 笔记本电脑。在第三个例子中,我们设置的待匹配字符串为一个数字,限制了最小匹配到 4 个字符,阈值为 0.5,由于列表中没有匹配到结果,返回了一个空数组。
结论
fuse-checkmark 是一个非常适用于前端和 Node.js 环境的模糊匹配工具,可用于很多不同的场景。本文介绍了它的安装、使用方法和 API,通过示例代码详细演示了不同的配置和匹配方式。我们可以根据具体的需求来定制化自己的匹配算法,提高了匹配的准确性和效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/60065b44c6eb7e50355dbe4f