不带空格的非连续子串自动完成

时间:2013-06-13 17:30:10

标签: jquery twitter-bootstrap autocomplete intellij-idea bootstrap-typeahead

我已经看到很多关于jquery自动完成的问题,包括多个关键字或代币,如

“el wo”匹配“hello world”(由于SO的降价分析而不添加空格,我无法加粗子串匹配)

我想实现类似的东西,但不在搜索字符串中使用空格。这在JetBrains IntelliJ及其他类似产品中成功使用。例如,

aco不仅匹配aconite,还匹配admin_controller

这是否可以使用jquery和/或bootstrap自动完成或typeahead插件? IntelliJ如何做到这一点?

1 个答案:

答案 0 :(得分:0)

它不会检查匹配的顺序,但你可以试试这个:

http://jsfiddle.net/tEJdx/5/

var possible = [
    'admin_controller',
    'accommodation',
    'printer',
    'advertised',
    'aoc', // this will match even if it's in wrong order
];

$('input').keypress(function(){
    setTimeout( function() {
        var result = [], input = $('#input').val();
        possible.filter(function(element, index, array) {
            var count = 0;
            for( i in input ) {
                if( element.indexOf( input[i] ) != -1 )
                    count++;
            }
            if( count == input.length )
            result.push( element );
        });

        $('#result').html(result.join('<br/>'));
    }, 200);

});

使用这样的HTML:

<input id="input" />
<div id="result"></div>