A command-t/quicksilver inspired string ranking algorithm for autocompletion.
JavaScript
Latest commit e4d0445 Jul 27, 2011 @ConradIrwin ConradIrwin Version 0.3
Permalink
Failed to load latest commit information.
LICENSE.MIT Add version 0.1 Jun 20, 2011
README.md Fix broken example code Jun 22, 2011
jquery.fuzzymatch.js Version 0.3 Jul 27, 2011
jquery.fuzzymatch.min.js Version 0.3 Jul 27, 2011
spec.html Add spec for new performance. Jul 27, 2011

README.md

jQuery.fuzzyMatch

jQuery.fuzzyMatch implements a fuzzy-string-matching algorithm inspired by QuickSilver and Command-T in javascript.

It is designed for use as part of an autocompleter, where a finite list of possible strings are to be matched against the few characters that the user has typed.

It offers some improvement over existing prefix-based matches, though it is careful to ensure that if a prefix match has been typed, it will be shown first.

Example

To use this with jQuery.ui.autocomplete, you do:

    $("input").autocomplete({
        source: function (context, callback) {
            callback($(['dog', 'cat', 'cow']).filter(function (a) {
                // Only show items which match
                return $.fuzzyMatch(a, context.term).score;
            }).sort(function (a, b) {
                // And sort them by matchiness.
                var score_a = $.fuzzyMatch(a, context.term).score,
                    score_b = $.fuzzyMatch(b, context.term).score;

                return score_a < score_b ? -1 : score_a === score_b ? 0 : 1;
            }));
        },
        delay: 0
    });

Meta-foo

This is all licensed under the MIT license, contributions are most welcome.