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 :
je veux r�cup�rer une multitude d'info, pour �tre pr�cis 50*6.Code:document.body.innerHTML
Voici mon code JS :
Code:
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 :
bref, voil�, je veux r�cup les VARxCode:
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
Alors j'ai commenc� � �crire un truc. Il y a une partie dont je ne suis pas sur, c'est ca :
Je ne sais pas si ca capture bien ce que je veux puisque "<td class=table_col2 align=center>" n'est pas unique ...Code:
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);
Mais c'est pas ici que je coince pour le moment, mais ici :
Il me renvoie NULL.Code:
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
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