如何获得仅匹配字符的第一个字符匹配结果

问题描述:

我只想显示从用户输入的匹配字符开始的结果。我想避免它们发生在中间。我怎样才能在打字前做到这一点。如何获得仅匹配字符的第一个字符匹配结果

这里是我的js代码:

var cities = new Bloodhound({ 
    datumTokenizer: Bloodhound.tokenizers.whitespace, 
    queryTokenizer: Bloodhound.tokenizers.whitespace, 
    prefetch: '/getcities' 
}); 

$('#city').typeahead({ 
    hint: true, 
    highlight: true, 
    minLength: 3, 
    limit: 10 
}, { 
    name: 'cities', 
    source: cities 
}); 

你必须重新定义datumTokenizer。这是假设您的自动补全值是针对对象阵列中的字段“键”的示例

datumTokenizer: function(d){ 
         var tokens = []; 
         var stringSize = d.key.length;        
         for (var i = 0; i<= stringSize; i++){ 
           tokens.push(d.key.substr(0, i)); 
          } 
         return tokens; 
        },