Supprimer les accents en Javascript

Mars 2013

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 !

11 commentaires :
Seuls les 10 derniers commentaires sont affichés.
Cliquez ici pour afficher tous les commentaires
commentaire n°2890 par Cassio
Cassio vendredi 19 septembre 2014, 23:29
Very good solution. I work in a company who provide IT solutions to my city's cityhall. I was needing this function to a public website that will be released soon. Thanks.
commentaire n°3339 par ORN Fox
ORN Fox mardi 28 juin 2016, 11:57
Merci pour cette fonction qui fonctionne à merveille !
commentaire n°3520 par djcaesar9114
djcaesar9114 samedi 8 juillet 2017, 22:43
Ça date de 2013 mais c'est toujours super efficace!
Merci :)
commentaire n°6272 par culture
culture mercredi 30 décembre 2020, 10:20
Fonction à l'usage des incultes incapables de parler leur langue et prêts pour l'esclavage.
commentaire n°6318 par nn147826@mail.ru
nn147826@mail.ru dimanche 10 janvier 2021, 12:02
Medicines information leaflet. Long-Term Effects. <a href="https://prednisone4u.top";>where buy prednisone for sale</a> in the USA. Everything news about medicine. Get now.
<a href=https://builuk.com/becoming-great-conversationalist/comment-page-138/#comment-153248>;Everything what you want to know about meds.</a> <a href=https://www.bestattung-glueck.at/sterbefall.php?id=179&;name=Michael-Wieland&timestamp=1602021600>Some about medicament.</a> <a href=https://dienmaysonganh.com/san-pham/may-phat-dien-chay-xang-bgas-bga3800.html>;Everything what you want to know about medication.</a> 0057fc6
commentaire n°7371 par Nabgrergy@rvmail.xyz
Nabgrergy@rvmail.xyz samedi 28 août 2021, 17:46
<a href=https://buystromectolon.com/>;can you buy stromectol over the counter</a>
commentaire n°7548 par reornepen@manmail.xyz
reornepen@manmail.xyz lundi 6 septembre 2021, 02:10
<a href=https://buypropeciaon.com/>;Propecia</a>
commentaire n°7618 par flarakeva@abdulah.xyz
flarakeva@abdulah.xyz mercredi 8 septembre 2021, 09:20
https://buypropeciaon.com/ - Propecia
commentaire n°7832 par chishar@sqmail.xyz
chishar@sqmail.xyz jeudi 16 septembre 2021, 02:57
<a href=https://buypriligyhop.com/>;Priligy</a>
commentaire n°7835 par Fopaway@rvmail.xyz
Fopaway@rvmail.xyz jeudi 16 septembre 2021, 04:32
https://buypriligyhop.com/ - Priligy
facultatif
Facebook Twitter RSS Email
Forum Excel
Venez découvrir le nouveau forum excel question/réponse à la stackoverflow.com !
Forum Excel
hit parade n'en a rien a foutre du W3C Positionnement et Statistiques Gratuites Vincent Paré