Téléchargé 1 fois
Vote des utilisateurs
1
0
Détails
Référencé dans
Navigation
Conversion des lettres accentuées (suppression des diacritiques) en javascript
Conversion des lettres accentuées (suppression des diacritiques) en javascript
Cette fonction, utilisant une unique expression régulière, est très rapide et particulièrement recommandée pour des traitements intensifs (conversion de listes, comparaisons multiples...)."
Elle présente la particularité de fonctionner aussi avec les graphèmes tels que "æ", "œ".
L'expression régulière est construite directement à partir d'un Object 'dicLetAcc' utilisé comme dictionnaire de conversion, lui-même élaboré à partir d'un premier Object 'dicConv', présentant les données de manière plus lisible et plus facile à maintenir.
Ce dictionnaire est limité aux caractères utilisés en français plus quelques autres, ajoutez simplement les conversions qui vous manquent, ou au contraire simplifiez-le pour ne conserver que les caractères utiles...
Elle présente la particularité de fonctionner aussi avec les graphèmes tels que "æ", "œ".
L'expression régulière est construite directement à partir d'un Object 'dicLetAcc' utilisé comme dictionnaire de conversion, lui-même élaboré à partir d'un premier Object 'dicConv', présentant les données de manière plus lisible et plus facile à maintenir.
Ce dictionnaire est limité aux caractères utilisés en français plus quelques autres, ajoutez simplement les conversions qui vous manquent, ou au contraire simplifiez-le pour ne conserver que les caractères utiles...
Nos ressources disponibles
Code : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | var dicConv = {a:"àáâãäå", ae:"æ", c: "ç", e:"èéêë", i:"ìíîï", n:"ñ", o:"òóôõöø", oe:"œ", u:"ùúûü", y:"ÿ"}; var dicLetAcc = {}; for (let cnv in dicConv) { let lst = Array.from(dicConv[cnv]); for (let c of lst) { dicLetAcc[c] = cnv; dicLetAcc[c.toUpperCase()] = cnv.toUpperCase(); } } var lstCar = Object.keys(dicLetAcc).join(''); var reSansAcc = new RegExp("[" + lstCar + "]", "g"); function sansAccent(txt) { return txt.replace(reSansAcc, function(t){return dicLetAcc[t]}); } function sansAccentSup(txt) { if (txt.match(/[ÆŒ]/)) return sansAccent(txt).replace(/\b(A|O)E(?=[a-z])/g, "$1e"); return sansAccent(txt); } // partie test var TestTexte = "Cas particuliers : Œil ŒIL Æde ÆCetc. PŒLE..." var tim = new Date().getTime(); alert(lstCar + '\n=> ' + sansAccent(lstCar) + '\n\n' + sansAccentSup(TestTexte) + '\n\ntemps (ms) : ' + (new Date().getTime() - tim)); |
Code : | Sélectionner tout |
if (txt.match(reSansAcc)) ...
Fignolage :
La fonction sansAccentSup() permet de gérer le cas très rare des Æ et Œ utilisés comme lettre capitales.
Cette variante les corrige en "Ae" et "Oe" :
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.