11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

Je rencontre un problème de javascript, qui se présente uniquement sur IE8.

Si je fais qqchose comme :

var mots = "aaaa;bbbb;cccc".split(new RegExp(";","g"));
var lettres;
for (mot in mots) {
    lettres = mot.split(new RegExp(".","g"));
}


j'ai une erreur "Cet objet ne gère pas cette propriété ou cette méthode" car après avoir pris pour valeur "aaaa", "bbbb" et "cccc", mot va contenir la méthode indexOf() de l'objet mots.

Est-ce un comportement normal?
Comment tenir compte proprement de cela? (j'ai pas très envie de constamment tester le type de mot à chaque itération)

Merci d'avance pour vos conseils !
J'ai comme un doute sur ton utilisation des Regex.
Personnellement, et n'étant pas un expert en expressions régulières, j'utilise systématiquement des délimiteurs.

Ce qui donnerais plutôt :
new RegExp("[;]+", "g");

Et puis entre-nous si tu n'as qu'un seul délimiteur pourquoi ne pas simplement utiliser la fonction Split() plutot que se t'embêter avec des Regex ?
De plus pourquoi ne pas se baser sur la taille de ton tableau pour itérer dessus ?

Essaye çà :

var chaine = "aaaa;bbbb;cccc";
var mots = chaine.split(";");
var lettres;
for (i=0; i<mots.length; i++) {
lettres = mot.split(".");
}

Consulte aussi ce lien, çà devrait t'inspirer Smiley cligne
http://www.toutjavascript.com/reference/reference.php?ref=split
Essaie ainsi:

Exemple en ligne et éditable:
http://jsfiddle.net/vaxilart/MCqwF/2/


var mots = "aaaa;bbbb;cccc".split(';');
var lettres;

for (var i = 0; i < mots.length; i++) {

    lettres = mots[i].split("");
    
    alert("["+lettres.join(',')+"]");
}


P.S.: J'ai retirer l'utilisation de For...In puisque ce type de boucle a été créé pour itérer au dessus les éléments d'un objet, et pas sur un array ayant une longueur prédifinie. (Notamment puisque plusieurs problèmes peuvent survenir lorsqu'utilisé conjointement à un Array, alors autant éviter pour plus de stabilité - bien que je ne crois pas que ça aurait causé problème dans l'utilisation que tu en fais).

Une référence à ce sujet:
http://stackoverflow.com/questions/500504/javascript-for-in-with-arrays[/i]
J'ai simplifié mon code pour l'exemple, dans la réalité j'ai bien besoin d'une regex.

Je ne savais pas que l'utilisation du for...in n'est pas adaptée aux tableaux. Dommage Smiley lol

Merci pour vos réponses!