我正在使用 Jquery fastsearch 插件。
这是一个很棒的插件,但我的一个网站遇到了问题。
在表中,我有包含带重音符号的字符串,例如 ò、ü、ä 等。 问题是用户不需要使用重音符号进行搜索。
我想要实现的是,例如,当有人输入“ola”时,搜索结果也会显示包含“ölä”的结果
知道如何做吗?
您需要将您的值存储在表中的两列中:1)原始2)干净。 1) 原始词——如 ò、ü、ä 等。 2) 干净 - 没有像 o、u、a 这样的重音符号。
为了让“干净”,你需要一个转换函数,在更新或插入表时,这样做并不难。
因此,当用户输入搜索术语时,您可以查看“clean”和“raw”这两列。
您可以使用prepareQuery和testQuery创建自定义查询来搜索您的寄存器
像这样:
prepareQuery: function (val) {
return val.toLowerCase();
},
以及 testQuery 方法:
testQuery: function (query, txt, _row) {
let customQuery = query.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
let customTxt = txt.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
return customTxt.startsWith(customQuery);
}