Comment puis-je faire correspondre automatiquement les mots avec des caractères spéciaux, tels que ceux en allemand: ö, Ä, é ou ß. Par exemple, j'aimerais que "mun" corresponde à "München" et "Munchen".jQuery Saisie semi-automatique avec des caractères spéciaux (par exemple ö, Ä, é ou ß)
4
A
Répondre
3
Il y a un excellent article sur ce sujet à A List Apart qui comprend un code Javascript
var accentMap = {
'á': 'a',
'é': 'e',
'í': 'i',
'ó': 'o',
'ú': 'u'
};
function accent_fold(s) {
if (!s) {
return '';
}
var ret = '';
for (var i = 0; i < s.length; i++) {
ret += accent_map[s.charAt(i)] || s.charAt(i);
}
return ret;
};
2
J'utilise typeahead, et après les heures de me cogner la tête contre un mur, il était aussi simple que l'utilisation utf8_encode sur le script qui renvoie le JSON:
utf8_encode (stripslashes ($ variable));
0
jQuery UI a une démo pour ce problème (pliage d'accent) sur leur site: https://jqueryui.com/autocomplete/#folding
$(function() {
var names = ["Jörn Zaefferer", "Scott González", "John Resig"];
var accentMap = {
"á": "a",
"ö": "o"
};
var normalize = function(term) {
var ret = "";
for (var i = 0; i < term.length; i++) {
ret += accentMap[term.charAt(i)] || term.charAt(i);
}
return ret;
};
$("#developer").autocomplete({
source: function(request, response) {
var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i");
response($.grep(names, function(value) {
value = value.label || value.value || value;
return matcher.test(value) || matcher.test(normalize(value));
}));
}
});
});
Questions connexes
- 1. Tri par chaîne de caractères spéciaux (ä, ö) dans Flex/AS3
- 2. Flash caractères allemands problème ä, ö
- 3. Expression régulière pour les caractères spéciaux dans les rails
- 4. Remplacer tous les caractères spéciaux par une expression régulière
- 5. Comment importer des caractères spéciaux d'Excel vers SQLIte
- 6. caractères spéciaux (ö) dans le document ezpdf
- 7. jQuery autocomplétion caractères spéciaux (norvégien) problèmes
- 8. Accents/caractères spéciaux (par exemple, ñ) dans verbose_name ou help_text?
- 9. Caractères spéciaux (UTF-8) avec jQuery, bibliothèque de l'aéroport
- 10. HTML L'analyse échoue avec des lettres accentuées (par exemple: é)
- 11. Twitter problèmes de partage avec les trémas ä & ö
- 12. Problème avec les caractères ä, ö, å etc. dans MySQL 5
- 13. PHP JSON décodeur renvoie NULL s'il contient & ou é ou caractères spéciaux
- 14. Tri des caractères å, ä, ö dans MS Search Server 2008
- 15. NSPredicate des caractères spéciaux - iPhone
- 16. jQuery event.keyCode 0 lorsque les touches suédoises å, ä et ö sont pressées
- 17. Caractères spéciaux s'échappant avec JS et PHP
- 18. Désinfecter une requête à l'aide de preg_replace mais autoriser certains caractères spéciaux
- 19. problème avec des caractères spéciaux
- 20. Drupal node_save et caractères spéciaux
- 21. Javascript/jQuery - convertir des caractères html spéciaux
- 22. Restriction des caractères spéciaux
- 23. passer des caractères spéciaux avec encodeURI en javascript
- 24. jQuery: AJAX trémas & caractères spéciaux sont un gâchis
- 25. Échapper des caractères spéciaux XML dans AJAX
- 26. jQuery.Get, paramètre avec des caractères spéciaux
- 27. Remplacement des caractères spéciaux par null
- 28. Incongruence de caractères spéciaux
- 29. ordering resultset ö avec o
- 30. Y at-il une fonction qui retourne la lettre racine pour les caractères spéciaux?
Qui traitement de la recherche et de retourner les résultats? jQuery? Ou un script côté serveur comme PHP/Java/etc par Ajax? Si ce dernier, alors la solution devrait être recherchée dans ce coin, pas dans le coin jQuery. Vous devez en dire plus sur l'environnement côté serveur utilisé alors. – BalusC
Tout est fait du côté client via jQuery en utilisant un ensemble de données de paires clé/valeur chargées une fois lors du chargement de la page. La clé est l'ID de l'article, et la valeur est le texte sur lequel je suis apparié. –
Cela deviendra plus compliqué. JavaScript n'a aucune notion de collation. Votre meilleur centre de villégiature sera probablement une recherche et un jumelage basés sur le codage. Je recommande de faire la correspondance sur le côté serveur en utilisant des langages ou des DB de collation-aware. – BalusC