11548 sujets

JavaScript, DOM et API Web HTML5

Bonsoir à tous !

J'ai une chaine qui contient plusieurs valeurs séparées par un pipe, il s'agit du caractère : |

Je souhaiterai avoir une fonction qui me retourne toutes les valeurs dans un tableau javascript.

Actuellement, j'ai ceci qui fonctionne uniquement pour deux valeurs :
function extractValues(value) {
	var reg = new RegExp('|', 'g');
	var tmpArray = value.split(reg);

	alert("Indice 0 : "+tmpArray[0]+"\nIndice 1 : "+tmpArray[1]);
}

extractValues('5|16');

Ceci ne fonctionne plus comme il faut si je mets 3 valeurs (ex. 5|16|184).

Merci d'avance pour votre aide.

edit: cet exemple ne fonctionne même pas en fait Smiley decu lol
Modifié par Alphonse (26 Oct 2009 - 18:22)
Hello,

1. | est un caractère spécial pour les expressions régulières, il doit donc être échappé :
var reg = new RegExp('\\|'); // le flag 'g' n'est pas utile dans ce cas

2. Il vaut mieux préférer l'utilisation des littéraux expression régulière quand c'est possible (c'est-à-dire dans la quasi majorité des cas) :
var reg = /\|/;

3. Dans ce cas, l'expression régulière est parfaitement inutile puisque split accepte une chaîne de caractères comme paramètre (voir MDC) :
var tmpArray = value.split('|');

4. Je ne comprends pas ton problème d'origine. Tu obtiens un tableau qui contient les valeurs, quelque soit leur nombre. Libre à toi d'itérer sur ce tableau ensuite :
for (var i = 0; i < tmpArray.length; ++i) {
    alert(tmpArray[ i]);
}

// ou

alert('tmpArray : ' + tmpArray.join(','));

Modifié par Julien Royer (27 Oct 2009 - 08:31)
Je te remercie. Je me suis inspiré de ce site mais j'aurais mieux fait d'aller consulter la documentation du MDC en premier lieu.

Du coup, il n'y avait pas vraiment de difficulté dans ce que je voulais avoir Smiley cligne

edit: sujet résolu
Modifié par Alphonse (27 Oct 2009 - 08:39)