REGEX s'arréter à la premiére balise

REGEX s'arréter à la premiére balise - HTML/CSS - Programmation

Marsh Posté le 31-07-2009 à 15:03:56    

Bonjour j'ai cette expression qui permet de supprimé la balise TR et son contenu en fonction du nom de l'image.
 
/<TR([^>]*)>(.*)lc_unchecked(.*)<\/TR>/gi
 
Le problème est que cette expression ne s'arrête qu'au deuxième TR, et je voudrai qu'elle s'arrête dés qu'elle trouve le premier
 

Code :
  1. <TABLE border=0 cellSpacing=0 cellPadding=0>
  2. <TBODY>
  3. <TR height=17><TD id=Chk_9673d39c-5ff9-102c-800c-005056c00008 width=16><IMG  src="http://192.168.4.150/mapguide/stdicons/lc_unchecked.gif" width=13 height=13></TD>
  4. <TD id=Ic_9673d39c-5ff9-102c-800c-005056c00008 width=23><IMG src="http://192.168.4.150/mapguide/stdicons/lc_group.gif" width=16 height=16></TD>
  5. <TD id=Lg_9673d39c-5ff9-102c-800c-005056c00008>Propriétés publiques</TD></TR></TBODY></TABLE>
  6. <DIV style="DISPLAY: none; MARGIN-LEFT: 20px" id=ChildrenOf_9673d39c-5ff9-102c-800c-005056c00008></DIV></DIV>
  7. <DIV style="DISPLAY: block" id=9673d39c-5ff9-102c-800d-005056c00008>
  8. <TABLE border=0 cellSpacing=0 cellPadding=0>
  9. <TBODY>
  10. <TR height=17><TD id=Chk_9673d39c-5ff9-102c-800d-005056c00008 width=16><IMG  src="http://192.168.4.150/mapguide/stdicons/lc_checked.gif" width=13 height=13></TD>
  11. <TD id=Ic_9673d39c-5ff9-102c-800d-005056c00008 width=23><IMG src="http://192.168.4.150/mapguide/stdicons/lc_group.gif" width=16 height=16></TD>
  12. <TD id=Lg_9673d39c-5ff9-102c-800d-005056c00008>Fond de Plan</TD></TR></TBODY></TABLE>


 
Avez vous des idées? merci d'avance :=)


Message édité par junix le 31-07-2009 à 15:04:13

---------------

Reply

Marsh Posté le 31-07-2009 à 15:03:56   

Reply

Marsh Posté le 31-07-2009 à 15:08:11    

Hum, rassure-moi, tu n'utilises quand même pas cette regexp sur du innerHTML pour modifier du HTML à la volée, hein ?
 
Tu sais sans doute déjà, qu'il est possible de faire ça de manière beaucoup plus propre en utilisant des manipulations DOM (genre table.deleteRow(index))

Reply

Marsh Posté le 31-07-2009 à 15:30:33    

oui, je reconnais ma brutalité de faire ça sur un innerHTML ^^.
 
du coup j'ai fais ça
 
le tout dans un for
 

Code :
  1. if(temp_parent.all.item(i).tagName == "TR" ){
  2.   if(temp_parent.all.item(i).getElementsByTagName("IMG" )[1].src.match("lc_unchecked" )){
  3.    while (temp_parent.all.item(i).firstChild) {
  4.      temp_parent.all.item(i).removeChild(temp_parent.all.item(i).firstChild);
  5.    }
  6.   }
  7.  }


---------------

Reply

Marsh Posté le 31-07-2009 à 15:55:17    

tu sais que ton code moche ne marche que sous IE ?


---------------
Blablaté par Harko
Reply

Marsh Posté le 31-07-2009 à 17:01:57    

y'a un truc con aussi avec les navigateurs,  je sais pu si c'est pour  tagName,  mais y'en a c'est en CAP et d'autre pas  
 
ducoup  
tagName de renvoi  "tr"   sur un navigateur  et "TR"  sur l'autre
ducoup quand tu fait ta comparaison ca marche pas, j'avais eu un probleme de se genre la,   apres un coup de  uppercase  ou lowercase et ca roule

Reply

Sujets relatifs:

Leave a Replay

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