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 à l'essai
    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
    Points : 24
    Points
    24
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 664
    Points
    66 664
    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

  3. #3
    Membre à l'essai
    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
    Points : 24
    Points
    24
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 664
    Points
    66 664
    Billets dans le blog
    1
    Par défaut
    mets moi la chaine avec les #quote# etc ...

  5. #5
    Membre à l'essai
    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
    Points : 24
    Points
    24
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 664
    Points
    66 664
    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>

  7. #7
    Membre à l'essai
    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
    Points : 24
    Points
    24
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 664
    Points
    66 664
    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>

  9. #9
    Membre à l'essai
    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
    Points : 24
    Points
    24
    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 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    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 640
    Points : 66 664
    Points
    66 664
    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
    "}            => "}

+ 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