Bonjour à tous ,
Je souhaite utiliser une fonction qui supprime tout les caractères dérangeants d'une chaine et remplacer les espaces et apostrophes par des _.
Pour le moment, j'utilise des jolies fonctions que j'ai trouvé de ci de la, le tout en javascript (je n'ai pas le droit à un autre langage)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
function preg_replace (array_pattern, array_pattern_replace, my_string)  {
	var new_string = String (my_string);
		for (i=0; i<array_pattern.length; i++) {
			var reg_exp= RegExp(array_pattern[i], "gi");
			var val_to_replace = array_pattern_replace[i];
			new_string = new_string.replace (reg_exp, val_to_replace);
		}
		return new_string;
}
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
 
function systemString (my_string) {
		my_string = String(my_string);
		var new_string = "";
		var pattern_accent = new Array("é", "è", "ê", "ë", "ç", "à", "â", "ä", "î", "ï", "ù", "ô", "ó", "ö");
		var pattern_replace_accent = new Array("e", "e", "e", "e", "c", "a", "a", "a", "i", "i", "u", "o", "o", "o");
		if (my_string && my_string!= "") {
			new_string = preg_replace (pattern_accent, pattern_replace_accent, my_string);
		}
		new_string = new_string.replace(/ /g,'_');
		new_string = new_string.replace(/'/g,'_');
		new_string = new_string.toLowerCase();
		alert(new_string);
		return new_string;
}
J'obtiens une chaîne propre avec ces fonctions. Cependant, sous google chrome lors de l'alerte à la fin de la fonction systemString(), j'ai une chaîne qui contient des accents. Je ne comprends pas pourquoi.
Sous Firefox et IE aucun problème...