Sujet récurrent sur le forum javascript s'il en est, c'est la suppression des caractères accentués, tirets etc ...

Voici un petit script facilement modifiable au niveau de la liste de caractères à remplacer ou supprimer
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
var TabSpec = {"à":"a","á":"a","â":"a","ã":"a","ä":"a","å":"a","ò":"o","ó":"o","ô":"o","õ":"o","ö":"o","ø":"o","è":"e","é":"e","ê":"e","ë":"e","ç":"c","ì":"i","í":"i","î":"i","ï":"i","ù":"u","ú":"u","û":"u","ü":"u","ÿ":"y","ñ":"n","-":" ","_":" "}; 
 
function replaceSpec(Texte){
	var reg=/[àáâãäåòóôõöøèéêëçìíîïùúûüÿñ_-]/gi; 
	return Texte.replace(reg,function(){ return TabSpec[arguments[0].toLowerCase()];}).toLowerCase();
 	}
 
var TestTexte="ÀÁÂÒÓÔÕÖØòÒÓÔÕ-ÖØòó_ôõöøÈÉÊËèéêëÇçÒÓÔÕÖØòÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ"
alert(replaceSpec(TestTexte))
Il suffit d'ajouter ou supprimer dans l'objet json les paires out : in
par exemple pour remplacer les majuscules accentuées la paire out in sera du type
et on rajoutera À dans la regexp en prenant soin de supprimer le modifier i (case instensitive)
si le but est de convertire par la même occasion en minuscume la paire out int pour les majuscules est inutile.


Pour supprimer le caractère mettre "" en in .

Dans ce script la sortie est passée en, toLowerCase(), on peut conserver la casse...