IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

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


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 107
    Par défaut REGEX s'arréter à la premiére balise
    Bonjour j'ai cette expression qui permet de supprimé la balise TR et son contenu en fonction du nom de l'image.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /<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 html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <TABLE border=0 cellSpacing=0 cellPadding=0>
    <TBODY>
    <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>
    <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>
    <TD id=Lg_9673d39c-5ff9-102c-800c-005056c00008>Propriétés publiques</TD></TR></TBODY></TABLE>
    <DIV style="DISPLAY: none; MARGIN-LEFT: 20px" id=ChildrenOf_9673d39c-5ff9-102c-800c-005056c00008></DIV></DIV>
    <DIV style="DISPLAY: block" id=9673d39c-5ff9-102c-800d-005056c00008>
    <TABLE border=0 cellSpacing=0 cellPadding=0>
    <TBODY>
    <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>
    <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>
    <TD id=Lg_9673d39c-5ff9-102c-800d-005056c00008>Fond de Plan</TD></TR></TBODY></TABLE>

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

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    quel est le but de la regexp ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var reg=/<TR(.[^>]*)>(.*)lc_unchecked(.[^<]*)</TD>/g
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    Oui, ta regexp est assez confuse puisque tu inclues des caractères joker. La regexp va commencer à capturer au premier pattern "<tr" trouvé et arrêter au dernier "/tr>".
    Il faut que tu fasses pareil que pour la fermeture de balise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /<TR([^>]*)>[^lc_unchecked]*lc_unchecked[^\/TR>]*<\/TR>/gi
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    lol Beef
    tu es plus restrictif que moi , je n'interdis que <
    avec ta reg il va bloquer non pas sur le suite /TR mais sur / ou T ou R ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 107
    Par défaut
    Le but de la regex est de supprimé les TR qui contienne une image avec un src dont l'image est uncheck

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    162
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 162
    Par défaut
    Je ne vais pas répondre au pb, mais tu sembles vouloir supprimer les TR contenant des images "uncheck"...

    La table que tu souhaites traiter est-elle affichée dans la page ?

    Si oui, il serait peut-être préférable d'utiliser des fonctions dom pour supprimer les lignes désirées ?

    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
     
    function cleanTableFromUncheckImage()
    {
       var table = document.getElementById('id_de_la_table');
       var listeTR = table.getElementsByTagName("TR");
       for (var i=0;i<listeTR.length;i++)
       {
          var listeImage = listeTR[i].getElementsByTagName("IMG");
          for (var j=0;j<listeImage.length;j++)
          {
             if (listeImage[j].src.match(/lc_unchecked/gi))
                listeTR[i].parentNode.removeChild(listeTR[i]);
          }
       }
    }

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    en fait voilà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <TR.[^>]*>.*lc_unchecked(.(?!</TR>))*></TR>
    si tu es sur du string de code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    codehtml=codehtml.replace('<TR.[^>]*>.*lc_unchecked(.(?!</TR>))*></TR>','');
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  8. #8
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 107
    Par défaut
    du coup j'ai regardé du coté du dom, puisque m'as valeur vient d'un innerHTML ^^

    Je supprime le contenu du noeud avec un while mais pas le noeud en lui même

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    for(i=0;i<temp_parent.all.length;i++){
    	if(temp_parent.all.item(i).tagName == "TR"){
    		if(temp_parent.all.item(i).getElementsByTagName("IMG")[1].src.match("lc_unchecked")){
    			while (temp_parent.all.item(i).firstChild) {
    		  	  temp_parent.all.item(i).removeChild(temp_parent.all.item(i).firstChild);
    			}
    		}
    	}		
    }

  9. #9
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    ben parentNode.removeChild() en passant par le DOM
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. supprimer toutes les balises d'un code html (regex?)
    Par le y@m's dans le forum Langage
    Réponses: 5
    Dernier message: 21/01/2014, 10h08
  2. [RegEx] S'arrêter à la première occurence d'un caractère
    Par Yekhen dans le forum Langage
    Réponses: 2
    Dernier message: 19/03/2010, 16h48
  3. S'arrêter à la première occurence dans un regex
    Par Anduriel dans le forum Windows Forms
    Réponses: 1
    Dernier message: 15/11/2009, 15h44
  4. [Regex] Suppression de blocs de balises HTML
    Par alband85 dans le forum Général Java
    Réponses: 3
    Dernier message: 15/05/2008, 01h54
  5. [Regex] Balises Html
    Par onegamer dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 09/08/2005, 16h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo