Supprimer les accents en Javascript
Javascript n'intègre pas de fonction native qui permette de remplacer tous les caractères accentués d'une chaine de caractère par leur version sans accent (une forme de normalisation).
La seule solution c'est donc de créer une fonction utilisateur pour faire une translation des caractères accentués (et les substituer par leur version "nu").
On en trouve beaucoup sur internet, aucune n'est parfaite, car il y a énormément de caractères diacritiques (c'est comme ça qu'on appelle les caractères accentués), dont certains auxquelles on ne pense pas comme les ligatures (œ, æ...).
Voici une fonction qui permet de supprimer les accents d'une chaine de caractère :
String.prototype.sansAccent = function(){ var accent = [ /[\300-\306]/g, /[\340-\346]/g, // A, a /[\310-\313]/g, /[\350-\353]/g, // E, e /[\314-\317]/g, /[\354-\357]/g, // I, i /[\322-\330]/g, /[\362-\370]/g, // O, o /[\331-\334]/g, /[\371-\374]/g, // U, u /[\321]/g, /[\361]/g, // N, n /[\307]/g, /[\347]/g, // C, c ]; var noaccent = ['A','a','E','e','I','i','O','o','U','u','N','n','C','c']; var str = this; for(var i = 0; i < accent.length; i++){ str = str.replace(accent[i], noaccent[i]); } return str; }
Cette fonction étend le prototype de l'objet String, c'est-à-dire que chaque objet de type string possède cette méthode. Elle fonctionne avec tous les encodages (UTF-8 et ISO-8859-1 (Latin1) notamment). Pour l'utiliser c'est très simple :
var chaine = "À côté d'un verre vide, il y a toujours un mec plein."; alert( chaine.sansAccent() );
Cette page peut vous intéresser : changer la couleur du texte sur excel à lire tout de suite !
J'espère que vous apprécierez le proverbe à la con ^^
Vous n'êtes pas obligé d'étendre le type String, vous pouvez déclarer la fonction normalement, comme ceci : function sansAccent(str){...
.
Si cette fonction n'est pas assez complète, vous pouvez vous baser sur celle-ci : https://github.com/yvg/js-replace-diacritics, mais elle ne conserve par les majuscules.
Encore faim ? allez lire ça : la cité blanche !
Merci :)
A moins de vivre comme un homme préhistorique inculte, enfermé dans sa grotte au paléolithique inférieur, cette fonction est très utile.