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 :

[RegExp] Liste de Modèles


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Par défaut [RegExp] Liste de Modèles
    Bonjour, je voudrais savoir s'il est possible de créer des expressions régulières de liste de modèles.
    Pour plus de clarté, voici un exemple
    J'ai la chaîne sur laquelle s'effectue la recherche ci-dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"(dcrp_id,'32')","(dcrp_statut,'2')","(dcrp_de_date,'2008-07-04')","(dcrp_de_urgence,'')","(dcrp_de_date_butoir,'')","(dcrp_de_section,'')","(dcrp_de_reference,'12345')","(dcrp_de_marque,'')","(dcrp_de_quantite,'10')","(dcrp_de_valide,'')","(dcrp_de_remarques,'')","(dcrp_com_date,'')","(dcrp_com_num,'')","(dcrp_com_valide,'')","(dcrp_com_remarques,'')","(dcrp_rec_date,'')","(dcrp_rec_scelles,'')","(dcrp_rec_remarques,'')","(dcrp_pec_date,'')","(dcrp_pec_remarques,'')","(de_ut_visa,'')","(de_valideur_ut_visa,'')","(com_ut_visa,'')","(rec_ut_visa,'')","(pec_ut_visa,'')","(dcrp_fourn_id,'')","(dcrp_prod_xml,'#lt#produit#gt##lt#id#gt#7#lt#/id#gt##lt#int_us#gt#Blablabla#lt#/int_us#gt##lt#int_sc#gt#de blabla#lt#/int_sc#gt##lt#formule#gt##lt#/formule#gt##lt#code_produit#gt##lt#/code_produit#gt##lt#code_formule#gt##lt#/code_formule#gt##lt#contenant#gt#Non renseigné#lt#/contenant#gt##lt#quantite#gt#0#lt#/quantite#gt##lt#num_cas#gt##lt#/num_cas#gt##lt#ratio#gt##lt#/ratio#gt##lt#pm#gt##lt#/pm#gt##lt#pourc#gt##lt#/pourc#gt##lt#risque#gt#1#lt#/risque#gt##lt#caracteres_organoleptiques#gt##lt#/caracteres_organoleptiques#gt##lt#remarques#gt##lt#/remarques#gt##lt#cmr#gt#f#lt#/cmr#gt##lt#stup#gt#f#lt#/stup#gt##lt#psycho#gt#f#lt#/psycho#gt##lt#id_unite_deconditionnement#gt#3#lt#/id_unite_deconditionnement#gt##lt#visa#gt#0#lt#/visa#gt##lt#type_conditionnement#gt#Non renseigné 0 g#lt#/type_conditionnement#gt##lt#categories#gt#PR=Réactif#lt#/categories#gt##lt#stocks_limites#gt#A=0,B=0,C=0,D=0#lt#/stocks_limites#gt##lt#stock_actuel#gt#0#lt#/stock_actuel#gt##lt#/produit#gt#')"}
    Je souhaite faire un split() sur cette chaine avec une expression régulières recherchant les chaines séparatrices : {"( ou ,' ou ')","( ou ')"}

    Je pensais utiliser un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var reg = /(^\{"\()|(,\')|(\'\)","\()|('\)"\}$)/gi;
    Mais ça ne marche pas bien :'(

    Quelqu'un a-t-il une idée?

  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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    déja n'utilises pas le ^ni le $ ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var reg=/\{"\(|\,'|\'\)|","|\'\)|"}/
    mais déja tu vas rencontrer un souci d'échappement des " et ' dans ta chaine
    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
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Par défaut
    En fait, la chaine où s'effectue la recherche est contenue dans la balise d'un document XML renvoyé par le serveur. Les apostrophes sont codées #apos# et les guillements #quot#.

  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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    mets moi la chaine avec les #quote# etc ...
    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 averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Par défaut
    Mieux, voici le document XML à traiter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?xml version="1.0"?>
    <liste>
    	<audit_trail>
    		<trail_id>1234</trail_id>
    		<trail_date>2008-07-04 16:06:26</trail_date>
    		<trail_action>ajout</trail_action>
    		<trail_table>dcrp</trail_table>
    		<trail_avant></trail_avant>
    		<trail_apres>{"(dcrp_id,'31')","(dcrp_statut,'2')","(dcrp_de_date,'2008-07-04')","(dcrp_de_urgence,'')","(dcrp_de_date_butoir,'')","(dcrp_de_section,'')","(dcrp_de_reference,'')","(dcrp_de_marque,'')","(dcrp_de_quantite,'5')","(dcrp_de_valide,'')","(dcrp_de_remarques,'')","(dcrp_com_date,'')","(dcrp_com_num,'')","(dcrp_com_valide,'')","(dcrp_com_remarques,'')","(dcrp_rec_date,'')","(dcrp_rec_scelles,'')","(dcrp_rec_remarques,'')","(dcrp_pec_date,'')","(dcrp_pec_remarques,'')","(de_ut_visa,'')","(de_valideur_ut_visa,'')","(com_ut_visa,'')","(rec_ut_visa,'')","(pec_ut_visa,'')","(dcrp_fourn_id,'')","(dcrp_prod_xml,'<produit><id>35</id><int_us>Protoxyde d'azote &lt; 3 % "&lt;&gt;</int_us><int_sc></int_sc><formule></formule><code_produit></code_produit><code_formule></code_formule><contenant>Non renseigné</contenant><quantite>0</quantite><num_cas></num_cas><ratio></ratio><pm></pm><pourc></pourc><risque>1</risque><caracteres_organoleptiques></caracteres_organoleptiques><remarques></remarques><cmr>f</cmr><stup>f</stup><psycho>f</psycho><id_unite_deconditionnement>5</id_unite_deconditionnement><visa>50</visa><type_conditionnement>Non renseigné 0 ml</type_conditionnement><categories>ER=Elément de référence</categories><stocks_limites>A=0,B=0,C=0,D=0</stocks_limites><stock_actuel>50</stock_actuel></produit>')"}</trail_apres>
    		<trail_commentaires></trail_commentaires>
    		<trail_visa>XXX</trail_visa>
    	</audit_trail>
    </liste>
    Je veux rechercher dans la balise trail_apres

  6. #6
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    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
    <script type="text/javascript">
    function moo(){
    var chaine=document.getElementById('foo').innerHTML;
    var reg=/\{"\(|\,'|\'\)|","\(|\'\)|"}/
    alert(chaine.split(reg))
    }
    </script>
     
     
     
    </head>
     
    <body onload="moo()">
    <div id="foo">{"(pre_id,'82')","(pre_quantite,'15')","(pre_commentaires,'')","(pre_cond_id,'2')","(pre_bal_id,'1')","(pre_quantite_voulue,'15')","(pre_manip_id,'67')"}</div>
    </body>
    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 !

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Par défaut
    Merci de ton aide SpaceFrog

    Y a-t-il un moyen de dumper aussi le chaine vide (ex: ) ?

  8. #8
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    et trichant un peu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <script type="text/javascript">
    function moo(){
    var chaine=document.getElementById('foo').innerHTML;
    var reg1=/''/gi;
    chaine=chaine.replace(reg1," ");
    var reg=/\{"\(|\)|\,|'(?=\d*)|(?=\d*)'|","\(|"}/
    alert(chaine.split(reg))
    }
    </script>
    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 !

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 26
    Par défaut
    Merci, le script me permet de faire ce que je voulais.

    Par contre, j'avoue avoir un peu de mal avec ton expression régulière, serait-il possible que tu l'expliques un peu, c'est juste pour ma culture personnelle :p

  10. #10
    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 658
    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 658
    Billets dans le blog
    1
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    \{"\(  =>   {"(
    ou
    \)      =>    )
    ou
    ,
    ou
    '(?=\d*)   => ' suivi de numérique
    ou
    (?=\d*)'   => numérique suivi de '
    ou
    ","\(        => ","(
    ou
    "}            => "}
    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. [AC-2007] Supprimer la liste des modèles téléchargés
    Par Boston33 dans le forum Access
    Réponses: 0
    Dernier message: 17/12/2014, 15h12
  2. ajouter un element à une list du modèle (MVC)
    Par userparis dans le forum C#
    Réponses: 2
    Dernier message: 12/11/2014, 13h28
  3. Existe-t-il une liste de modèles de sites Sharepoint ?
    Par raton_laveur dans le forum SharePoint
    Réponses: 3
    Dernier message: 05/05/2009, 08h53
  4. Regexp & liste de fichier !
    Par Sylver--- dans le forum Langage
    Réponses: 3
    Dernier message: 18/06/2007, 23h55
  5. Regexp : liste
    Par Nemehy dans le forum Langage
    Réponses: 1
    Dernier message: 21/12/2006, 18h06

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