Bonjour

J'ai fait une fonction qui remplace les accents par des caractères sans accents, seulement voilà, certains accents ne sont pas remplacés, notamment quand il y a plusieurs fois le même caractère, et le premier ainsi que le dernier ne sont pas remplacés non plus.

Mon appel :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
<?php
// Pour tester, j'ai fait une chaine remplie d'accents, certains y étant plusieurs fois
chaine = 'ýþÿÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçËÌÜÝÞÍèéêëìíîïðñòóôõöøùúûüýëîïðËÌÍ';
chaine = no_accent(chaine);
alert(chaine);
?>
Ma fonction :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
function no_accent(my_string) 
	{
		// tableau accents
		var pattern_accent = new Array("À","Á","Â","Ã","Ä","Å","Æ","Ç","È","É","Ê","Ë",
		"Ì","Í","Î","Ï","Ð","Ñ","Ò","Ó","Ô","Õ","Ö","Ø","Ù","Ú","Û","Ü","Ý",
		"Þ","ß","à","á","â","ã","ä","å","æ","ç","è","é","ê","ë","ì","í","î",
		"ï","ð","ñ","ò","ó","ô","õ","ö","ø","ù","ú","û","ü","ý","ý","þ","ÿ");
 
		// tableau sans accents
		var pattern_replace_accent = new Array("A","A","A","A","A","A","A","C","E","E","E","E",
		"I","I","I","I","D","N","O","O","O","O","O","O","U","U","U","U","Y",
		"b","s","a","a","a","a","a","a","a","c","e","e","e","e","i","i","i",
		"i","d","n","o","o","o","o","o","o","u","u","u","u","y","y","b","y");
 
		//pour chaque caractere si accentué le remplacer par un non accentué
		for(var i=0;i<pattern_accent.length;i++)
		{
			// si on trouve un accent dans la chaine on le remplace par le caractere non accentué correspondant
 
			if( my_string.indexOf(pattern_accent[i]) )
			{
				my_string = my_string.replace(pattern_accent[i],pattern_replace_accent[i]);
			}
		}
		return my_string;
	}
Ce que ça me renvoie :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
ýbyAAAAAAACEEEEIIIIDNOOOOOOUUUUYbsaaaaaaacËÌÜÝÞÍeeeeiiiidnoooooouuuuýëîïðËÌÍ
Comment puis-je faire pour gérer le fait que le caractère puisse être plusieurs fois dans la chaîne, et que les premier et dernier caractères soient remplacés aussi ?

Cordialement
Ginger