您好我正在为项目使用Jquery自动完成功能,但我的语言存在特殊问题。在阿尔巴尼亚,我们的字母表中包含ë和ç等字符,但是有些人不知道键盘组合来产生这个字符,我试图用'e'和'c'来回复这些字。例如,当人们搜索“Dhermi”时,我想将“Dhërmi”这个词作为建议。同样的“canta”这个词我想表示“çanta”。这里有很多这样的单词,所以我想要一个以这种方式返回数据的函数。
以下是我的功能
$("#search").autocomplete({
minLength:0,
delay:10,
appendTo: ".search",
source:function(request, response) {
//
var matchernormal = new RegExp( "^" + $.ui.autocomplete.escapeRegex( request.term ), "i" );
matcher = $.grep(tagsarr, function( item ){return matchernormal.test(item);})
console.log(matcher)
// Limit Results
var results = $.ui.autocomplete.filter(matcher, request.term);
response(results.slice(0, 10));
}
});
如果有人能帮助我解决我遇到的这个问题,我将不胜感激。
答案 0 :(得分:0)
您正在寻找的是重点折叠: https://jqueryui.com/autocomplete/#folding
您可以将重音字符映射到规范化字符
var accentMap = {
"á": "a",
"ö": "o"
};
和一个从其他人转换的函数(参见示例链接)
var normalize = function( term ) {....}
并与字符串的标准化值以及原始值进行比较:
return matcher.test( value ) || matcher.test( normalize( value ) );