Wie man Matcher dazu bringt, diakritische Zeichen zu ignorieren - JQUERY
Ich versuche, Typeahead dazu zu bringen, mit Akzenten zu arbeiten. Bisher keine Zigarre.
Die Datei typeahead.json enthält Daten wie:{"0":"João","1":"Rogério","2":"Fábio"}
Der JQuery-Code sieht folgendermaßen aus:
$.getJSON('./banco/typeahead.json',function(data){
var substringMatcher=function(strs){
return function findMatches(q,cb){
var matches, substrRegex;
matches=[];
substrRegex=new RegExp(q,'i');
$.each(strs,function(i, str){
if(substrRegex.test(str)){
matches.push({value: str});
}
});
cb(matches);
};
};
var charMap={ "à": "a", "â": "a", "é": "e", "è": "e", "ê": "e", "ë": "e", "ï": "i", "î": "i", "ô": "o", "ö": "o", "û": "u", "ù": "u" };
var normalize = function(str){
$.each(charMap, function(chars, normalized){
var regex = new RegExp('[' + chars + ']', 'gi');
str = str.replace(regex, normalized);
});
return str;
}
var banco=normalize(data);
$('.typeahead').typeahead({
hint: true,
highlight: true,
minLength: 3,
//accentMap: charMap,
},{
name: 'banco',
displayKey: 'value',
source: substringMatcher(banco),
});
});
Das HTML / CSS spielt in diesem Fall keine Rolle:
<input
class="typeahead tt-query"
type="text" autocomplete="off" spellcheck="false"
>
Vielen Dank für alle Anweisungen.