Jquery自动填充自定义返回数据

时间:2015-05-14 16:27:12

标签: javascript jquery regex autocomplete

您好我正在为项目使用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));

    }
});

如果有人能帮助我解决我遇到的这个问题,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

您正在寻找的是重点折叠: https://jqueryui.com/autocomplete/#folding

您可以将重音字符映射到规范化字符

var accentMap = {
  "á": "a",
  "ö": "o"
};

和一个从其他人转换的函数(参见示例链接)

var normalize = function( term ) {....}

并与字符串的标准化值以及原始值进行比较:

return matcher.test( value ) || matcher.test( normalize( value ) );