Lors de la mise en place de tracking et de partage des données, une des contraintes à prendre en compte concerne les accents et caractères spéciaux qui peuvent être interdites par certains outils (l’outil ne prenant pas en compte la donnée si un caractère interdit est envoyé).
La solution est de standardiser les valeurs avec un format universel accepté par les outils utilisés. Le plus souvent la règle suivante sera compatible avec les outils :
- Enlever les accents = les remplacer par un caractère sans accents
- Enlever les espaces = les remplacer par un underscore
- Remplacer les caractères spéciaux par des underscores
Pour réaliser cette tâche, il est conseillé de créer la fonction Javascript correspondante et de l’utiliser pour formatter les données avant envoi.
Ci-dessous, un exemple de fonction qui réalise cette tâche. La fonction
suppr_acc_car_spec = function(a) {
if(typeof a === 'string'){
var str = a ; var tab_accent_brut = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ";
var tab_sansAccent_brut = "aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn";
var tab_accent = tab_accent_brut.split('');
var tab_sansAccent = tab_sansAccent_brut.split('');
tabCorrAcc = new Array();
var i = -1;
while (tab_accent[++i]) {
tabCorrAcc[tab_accent[i]] = tab_sansAccent[i]
}
tabCorrAcc['Œ'] = 'OE';
tabCorrAcc['œ'] = 'oe';
str = str.replace(/./g, function($0) {
return (tabCorrAcc[$0]) ? tabCorrAcc[$0] : $0
})
str = str.replace(/&/g, '_');
str = str.replace(/_amp;/g, '');
str = str.replace(/</g, '_');
str = str.replace(/_lt;/g, '_');
str = str.replace(/>/g, '_');
str = str.replace(/_gt;/g, '_');
str = str.replace(/(-| |#|"|@|:|\.|,|;|'|%|!|²|=|÷|\+|\?|\/|\[|\]|\{|\}|\*|\^|\$|\\|`|"|'|¨|€|£|¤|µ|§|~|ƒ|„|©|°)/g, '_')
return str;
}}
2 commentaires sur “Comment enlever les accents et remplacer les caracteres speciaux en Javascript ?”
très mal expliqué
Merci pour ce commentaire constructif et merci d’avoir proposé une meilleure explication.