1

我正在尝试使用jquery-autocomplete我的母语(越南语 FWIW)中的音调标记。它对单词的精确匹配很有效。但是,我希望搜索功能忽略音调标记,即默认情况下搜索“Lâm”和“Lam”将匹配“Lâm”。

谢谢你。

4

1 回答 1

3

我假设您对客户端数据使用自动完成功能。

  • 有关替换拉丁字母变音符号的 javascript 代码,请参阅此答案
  • 在小部件方面,检查source选项

这是一个大纲(未经测试),可让您了解如何使用source函数:

// use the 'removeDiacritics' function from the quoted answer above
function removeDiacritics(str) {
   ...
}

var myData = ['aäa', 'bbb'];

$('input#autocomplete').autocomplete({
    source: function(request, responseCallback){
        // 'request' holds the value typed in the input,
        // remove diacritics from this value, and build a regexp :
        var reSearch  = new RegExp( removeDiacritics(request) );

        // build an array of matched values :
        var result = [];
        for (var i=0; i<myData.length; i++){
            // for each search candidate, run it through removeDiacritics,
            // and see if result macthes the (diacritics free) regexp :
            if ( reSearch.match( removeDiacritics(myData[i]) ) ){
                result.push(myData[i]);
            }
        }

        // call the callback with this array :
        responseCallback(result);
    }
});
于 2013-04-10T10:52:27.157 回答