Fonction JavaScript pour enlever les accents d'un texte
Présentation de la fonction stripAccents
La fonction stripAccents() en JavaScript permet de supprimer les accents des lettres dans une chaîne de caractères. C’est utile pour la normalisation des données, les comparaisons de chaînes ou le référencement.
Code de la fonction
function stripAccents(str) {
if (typeof str !== 'undefined') {
var rExps = [
{re:/[\xC0-\xC6]/g, ch:'A'},
{re:/[\xE0-\xE6]/g, ch:'a'},
{re:/[\xC8-\xCB]/g, ch:'E'},
{re:/[\xE8-\xEB]/g, ch:'e'},
{re:/[\xCC-\xCF]/g, ch:'I'},
{re:/[\xEC-\xEF]/g, ch:'i'},
{re:/[\xD2-\xD6]/g, ch:'O'},
{re:/[\xF2-\xF6]/g, ch:'o'},
{re:/[\xD9-\xDC]/g, ch:'U'},
{re:/[\xF9-\xFC]/g, ch:'u'},
{re:/[\xC7-\xE7]/g, ch:'c'},
{re:/[\xD1]/g, ch:'N'},
{re:/[\xF1]/g, ch:'n'}
];
for (var i = 0, len = rExps.length; i < len; i++) {
str = str.replace(rExps[i].re, rExps[i].ch);
}
return str;
}
};
Exemple d’utilisation
let original = "Élève à l’université de São Paulo";
let clean = stripAccents(original);
console.log(clean);
Résultat obtenu
Eleve a l'universite de Sao Paulo
Pourquoi supprimer les accents ?
- Pour uniformiser les données en base (recherche, tri, URL friendly...)
- Pour simplifier la gestion des chaînes multilingues
- Pour créer des slugs ou des alias SEO
Alternative native (plus récente)
Si vous ciblez les navigateurs modernes, vous pouvez aussi utiliser normalize() :
str.normalize("NFD").replace(/[\u0300-\u036f]/g, "")
Mais attention, cette méthode ne fonctionne pas sur tous les systèmes Unicode étendus et n’est pas supportée par tous les anciens navigateurs.
Compatibilité
La fonction stripAccents fonctionne même sur des navigateurs anciens car elle repose uniquement sur les expressions régulières.
