Autocomplete custom array json filter
$( function() {
var autocomplete = (function() {
var json;
$.ajax({
url: "/autocomplete",
dataType: 'json',
type: 'post',
data: {searchString: ''},
success: function(data) {
json = data;
}
});
return {getJson : function()
{
if (json) return json;
// else show some error that it isn't loaded yet;
}};
})();
});
var data = [];
var arrayFilter = [];
data = autocomplete.getJson();
$.grep(data, function(el, i) {
var cleanString = (function(s) {
var r=s.toLowerCase();
r = r.replace(new RegExp("\\s", 'g'),"");
r = r.replace(new RegExp("[àáâãäå]", 'g'),"a");
r = r.replace(new RegExp("æ", 'g'),"ae");
r = r.replace(new RegExp("ç", 'g'),"c");
r = r.replace(new RegExp("[èéêë]", 'g'),"e");
r = r.replace(new RegExp("[ìíîï]", 'g'),"i");
r = r.replace(new RegExp("ñ", 'g'),"n");
r = r.replace(new RegExp("[òóôõö]", 'g'),"o");
r = r.replace(new RegExp("œ", 'g'),"oe");
r = r.replace(new RegExp("[ùúûü]", 'g'),"u");
r = r.replace(new RegExp("[ýÿ]", 'g'),"y");
r = r.replace(new RegExp("\\W", 'g'),"");
return r;
});
var reg = new RegExp(request.term, 'i');
if (cleanString(el.Name).match(reg)) {
arrayFilter.push(el);
}
});
response(arrayFilter);