Bonjour à tous,

depuis ce matin je suis sur un "problème"? de regex sur du code source html ...
Bon, déjà, le regex c'est pas si simple en JS mais bon, je suis obligé, et bien ca fait bosser un peu

Je suis en train de creer un script GreaseMonkey qui avec le code source de la page courante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
document.body.innerHTML
je veux récupérer une multitude d'info, pour être précis 50*6.

Voici mon code JS :

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
 
var ok = true;
 
var all_user = /<input type='hidden' name='do' value='delete'>(.*?)<BR><input type='button'/g.exec(document.body.innerHTML);
var all_user4 = document.body.innerHTML.match(/<input type='hidden' name='do' value='delete'>([\s\S]*?)<BR><input type='button'/m);
var all_user2 = /<li class="index"><a href="index.php"><span>(.*?)<li class="forums"><a href="forums.php"><span>/g.exec(document.body.innerHTML);
var all_user3 = /<li class="index"><a href="index.php"><span>/.exec(document.body.innerHTML);
var string = document.body.innerHTML;
var regex  = /<input type='hidden' name='do' value='delete'>([\s\S]*?)<\/table><BR><input type='button' value='Check All' onclick='this\.value=check\(form\)'>/g; 
console.log( regex.exec(string) ); // Console Firebug 
 
for (j=1; j<=50; j++){ 
var user = /<tr>(.*?)<\/tr>/.exec(all_user);
var var1 = /<a href=dtls.php\?id=[0-9]+>(.*?)<\/a>/.exec(user);
var var2 = /<td class=table_col2 align=center>(.*?)<\/td>/.exec(user);
var var3= /<td class=table_col1 align=center>(.*?)<\/td>/.exec(user);
var var4= /<td class=table_col2 align=center>(.*?)<\/td>/.exec(user);
var var5= /<td class=table_col1 align=center>(.*?)<\/td>/.exec(user);
var var6 = /<td class=table_col2 align=center>(.*?)<\/td>/.exec(user);
if (ok) {
	alert(var1+ " " +  var2+ " " +  var3+ " " +  var4+ " " +  var5+ " " +  var6);
	ok = false;
	}
//file.WriteLine(var1+ " " +  var2+ " " +  var3+ " " +  var4+ " " +  var5+ " " +  var6); //ActiveXObject ne marche pas sous FF
}
//}

Mon code source qui m'interesse ici est de cette tête :

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
<form action='test.php?ok=users' method='POST'><input type='hidden' name='do' value='delete'>
		<tr><td class=table_col1 align=center><a href=dtls.php?id=128895>VAR1</a></td>
		<td class=table_col2 align=center>VAR2</td>
		<td class=table_col1 align=center>VAR3</td>
 
		<td class=table_col2 align=center>VAR4</td>
		<td class=table_col1 align=center>VAR5</td>
		<td class=table_col2 align=center>VAR6</td>
		<td class=table_col1 align=center><input type=checkbox name='userids[]' value='128895'></td>
		</tr>
 
<tr><td class=table_col1 align=center><a href=dtls.php?id=12895>VAR1</a></td>
		<td class=table_col2 align=center>VAR2</td>
		<td class=table_col1 align=center>VAR3</td>
 
		<td class=table_col2 align=center>VAR4</td>
		<td class=table_col1 align=center>VAR5</td>
		<td class=table_col2 align=center>VAR6</td>
		<td class=table_col1 align=center><input type=checkbox name='userids[]' value='12895'></td>
		</tr>
ETC
bref, voilà, je veux récup les VARx

Alors j'ai commencé à écrire un truc. Il y a une partie dont je ne suis pas sur, c'est ca :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
var var1 = /<a href=dtls.php\?id=[0-9]+>(.*?)<\/a>/.exec(user);
var var2 = /<td class=table_col2 align=center>(.*?)<\/td>/.exec(user);
var var3 = /<td class=table_col1 align=center>(.*?)<\/td>/.exec(user);
var var4 = /<td class=table_col2 align=center>(.*?)<\/td>/.exec(user);
var var5 = /<td class=table_col1 align=center>(.*?)<\/td>/.exec(user);
var var6  = /<td class=table_col2 align=center>(.*?)<\/td>/.exec(user);
Je ne sais pas si ca capture bien ce que je veux puisque "<td class=table_col2 align=center>" n'est pas unique ...

Mais c'est pas ici que je coince pour le moment, mais ici :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
var string = document.body.innerHTML;
var regex  = /<input type='hidden' name='do' value='delete'>([\s\S]*?)<\/table><BR><input type='button' value='Check All' onclick='this\.value=check\(form\)'>/g; 
console.log( regex.exec(string) ); // Console Firebug
Il me renvoie NULL.


Une idée ? (ca doit pas être très compliqué, mais j'ai absuloment rien trouvé sur le net)

PS : y a des testes dans mon js : all_usersX