RegExp JavaScript

RegExp JavaScript - HTML/CSS - Programmation

Marsh Posté le 23-12-2008 à 15:46:35    

Hello,  
 
J'ai écrit ce bout de code :
 

Code :
  1. var exp = /(?:<option value="(\d*)">(.*?)<\/option> )/gi;
  2.  var tab = exp.exec(contenuHTML);
  3.  for (z=0; z<tab.length; z++) {
  4.   alert(tab[z]);
  5.  }


 
Pour récupérer les données de contenuHTML qui contient :

Code :
  1. <option value="1">Un</option><option value="2">Deux</option><option value="3">Trois</option>


 
tab contient alors :  

Code :
  1. tab[0] = <option value="1">Un</option>
  2. tab[1] = 1
  3. tab[2] = Un


 
Comment faire pour qu'il trouve les 3 occurrences ?
 
Merci beaucoup !


---------------
Un être en tant qu'être ne pourrait-il pas être autre qu'il n'est s'il n'explique pas lui-même son être ?
Reply

Marsh Posté le 23-12-2008 à 15:46:35   

Reply

Marsh Posté le 23-12-2008 à 15:58:26    

Euh.... Pourquoi ne pas utiliser du DOM standard [:petrus dei]

Reply

Marsh Posté le 23-12-2008 à 16:27:58    

FlorentG a écrit :

Euh.... Pourquoi ne pas utiliser du DOM standard [:petrus dei]


J'écoute :)
Mais le contenu de "contenuHTML" est issu de la lecture d'un fichier.


---------------
Un être en tant qu'être ne pourrait-il pas être autre qu'il n'est s'il n'explique pas lui-même son être ?
Reply

Marsh Posté le 23-12-2008 à 16:47:54    

Il ressemble à quoi ce fichier ?

Reply

Marsh Posté le 23-12-2008 à 16:55:49    

FlorentG a écrit :

Il ressemble à quoi ce fichier ?


Une longue ligne comme ça :
 

Code :
  1. 1. <option value="1">Un</option><option value="2">Deux</option><option value="3">Trois</option>


---------------
Un être en tant qu'être ne pourrait-il pas être autre qu'il n'est s'il n'explique pas lui-même son être ?
Reply

Marsh Posté le 23-12-2008 à 18:00:50    

ah oui je devine [:petrus75]
c'est pour populer un select mais sous IE6 ça merde (monselect.innerHTML=kkc ==> error sous IE6) donc tu es obligé de reparser ce que tu recois pour ensuite recréer les options via du DOM.
 
et pourquoi tu ne recoderais la partie qui t'es envoyée histoire d'avoir du JSon et derrière avec un peu de dom tu génère tes options très facilement

Reply

Marsh Posté le 27-12-2008 à 18:33:49    

greeeg a écrit :

Comment faire pour qu'il trouve les 3 occurrences ?
 
Merci beaucoup !


il faut le faire en deux passes

Code :
  1. var str = '<option value="1">Un</option><option value="2">Deux</option><option value="3">Trois</option>';
  2.             var exp = /(<option(.*?)<\/option> )/gi;
  3.             var exp2 = /.*"(.*?)">(.*)<.*/i;
  4.             var tab = str.match(exp);
  5.             for (z=0; z<tab.length; z++)
  6.                 console.log(tab[z].match(exp2));


 
mais en effet t aurais peut etre à gagner à utiliser json comme il te l a été conseillé


---------------
« The enemy is the gramophone mind, whether or not one agrees with the record that is being played at the moment. » — George Orwell
Reply

Marsh Posté le 20-01-2009 à 11:59:02    

petit up parce que j'ai dit une grosse connerie :o

Code :
  1. var myRe = /ab*/g;
  2. var str = "abbcdefabh";
  3. var myArray;
  4. while ((myArray = myRe.exec(str)) != null)
  5. {
  6.  var msg = "Found " + myArray[0] + ".  ";
  7.  msg += "Next match starts at " + myRe.lastIndex;
  8.  print(msg);
  9. }


Source


---------------
« The enemy is the gramophone mind, whether or not one agrees with the record that is being played at the moment. » — George Orwell
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed