2
0
mirror of https://github.com/devbridge/jQuery-Autocomplete.git synced 2024-09-19 16:59:01 +00:00

hoist exact matches to top of autocomplete suggestions

This commit is contained in:
Howard Yeend 2016-05-30 23:48:33 +01:00
parent 615fd80030
commit fd37a268aa

View File

@ -530,9 +530,32 @@
return filter(suggestion, query, queryLowerCase); return filter(suggestion, query, queryLowerCase);
}) })
}; };
function wholeWordMatch(suggestion) {
return (suggestion.split(/\b/).indexOf(queryLowerCase) >= 0);
}
function preferExactMatches(a, b) {
var sa = a.value.toLowerCase();
var aWhole = wholeWordMatch(sa);
var sb = b.value.toLowerCase();
var bWhole = wholeWordMatch(sb);
if (aWhole && bWhole) {
if (sa === queryLowerCase && sb === queryLowerCase) {
return 0;
}
return (sa === queryLowerCase) ? -1 : 1;
}
if (aWhole) {
return -1;
}
if (bWhole) {
return 1;
}
return 0;
}
if (limit && data.suggestions.length > limit) { if (limit && data.suggestions.length > limit) {
data.suggestions = data.suggestions.slice(0, limit); data.suggestions = data.suggestions.sort(preferExactMatches).slice(0, limit);
} }
return data; return data;