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 :

decomposition d'une chaine de characteres


Sujet :

JavaScript

  1. #1
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Par défaut decomposition d'une chaine de characteres
    Bonjour,
    J'aimerais avoir deux boucles imbriquees pouvant decomposer la chaine suivante (ce que j'en fais n'a peu d'importance):

    C500*F2#C502*F3*F4#

    Il y a les C suivis d'un nombre (ex:C500) ensuite un separateur '*'. La on rentre dans la boucle imbriquee pour extraire les F suivis d'un numero (ex:F2)
    Dans le cas de C500 il n 'y a qu'un F, dans le cas de 502 il y a 2 F.

    J'ai un peu de mal avec le javascript, si vous pouviez m'aider

    merci

  2. #2
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 48

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par défaut
    au choix, tu as :
    charAt, indexOf, split, substring et les expressions regulières

  3. #3
    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
    split serait plus simple ...

    tu veux decomposer comment ?
    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 !

  4. #4
    Membre expérimenté Avatar de Cpas2latarte
    Inscrit en
    Janvier 2006
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 237
    Par défaut vive les expression régulière
    perso, j'obterai pour cela
    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
    16
    17
    18
    19
    20
     
    <script>
    var val="C500*F2#C502*F3*F4#"; 
     
    var re = /(?:^|[#])(C\d+[^#]+)/g;
    var listC = val.match(re); 
    /* ici, chaque element de liste c est de la forme Cxx*Fxx*...Fxx 
    il suffit de parcourir listC et dutiliser une expression régulière  pour recup les Fxx
    */
    var re2 = /(F\d+)/g;
     
    for (var i=0; i<listC.length; i++) {
      alert(listC[i] + '\n' + listC[i].match(re2));
    /*
    listC[i].match(re2) renvoi un tableau dont chanque element est le F suivi du nombre
     
    */
    }
     
    </script>

  5. #5
    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
    bon si tu charges direct avec les regExp ...
    mais bon c'est pas à la portée de tout le monde ...
    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 !

  6. #6
    Membre expérimenté Avatar de Cpas2latarte
    Inscrit en
    Janvier 2006
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 237
    Par défaut ARf - Dsl c'est la fin de journée
    Bijour space frog
    Ben dsl, mais j'en ai mangé 2 ou 3 aujourd'hui au bureau.
    Des plutot costaud ...

    donc en fin de journée je suis blindé

  7. #7
    Membre expérimenté Avatar de Seb19
    Homme Profil pro
    Concepteur SOA
    Inscrit en
    Septembre 2005
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Concepteur SOA

    Informations forums :
    Inscription : Septembre 2005
    Messages : 217
    Par défaut
    Bonjour,

    est-ce que quelque chose dans ce style utilisant les splits n'irait pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function decoupe() {
    	var chaine = "C500*F2#C502*F3*F4#";
    	var chaine1 = new Array();
    	chaine1 = chaine.split("#");
    	for (i=0; i<chaine1.length-1; i++) {
    		alert(chaine1[i]);
    		var chaine2 = new Array();
    		chaine2 = chaine1[i].split("*");
    		alert(chaine2);
    	}
     
    }
    la boucle va jusqu'à length-1 car la chaine se termine par un séparateur.

  8. #8
    Membre expérimenté Avatar de Cpas2latarte
    Inscrit en
    Janvier 2006
    Messages
    237
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 237
    Par défaut ça fonctionner
    ça ma l'aire tout bon
    C'est un peu le même principe que l'exemple que j'ai donné sauf que c'est sans expression régulière
    (C'est moi drole koi )
    Mais plus cerrieusement, c'est sans dout plus lisible pour celui qui n'est pas habitué au expression régulière. De plus, cette solution à l'aventage aussi d'être plus facilement portable .
    L'inconvénien des des expression régulière, c'est qu'il arrive que la sy'ntaxe change d'un langage à l'autre.

    Une belle expression qui marche tres bien coté client en JS, n'est pas toujours portable si on veux transfer le contrôle coté serveur (PHP par ex)

  9. #9
    Membre expérimenté Avatar de Seb19
    Homme Profil pro
    Concepteur SOA
    Inscrit en
    Septembre 2005
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Concepteur SOA

    Informations forums :
    Inscription : Septembre 2005
    Messages : 217
    Par défaut
    Citation Envoyé par Cpas2latarte
    c'est sans dout plus lisible pour celui qui n'est pas habitué au expression régulière.
    C'est bien pour cela que je l'ai mis en rejoignant l'avis de SpaceFrog sur les expressions régulières qui sont moins abordables.

  10. #10
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    ok avec cpa2latarte, j'arrive au même résultat;

    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
    16
    17
    18
    19
    20
    <script type="text/javascript"> 
     
    var ch="C500*F2#C502*F3*F4#";
     
    var t1=[];
    var t2=[];
     
    var re=/[CF]\d+/g;
     
    var tab=ch.match(re);
     
    for(i=0;i<tab.length;i++){
    	L=tab[i].search("C")? t1 : t2;
    	L.push(tab[i])
    }
     
    alert(t1);
    alert(t2);
     
    </script>

  11. #11
    Membre éprouvé Avatar de graphicsxp
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    758
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : Luxembourg

    Informations forums :
    Inscription : Avril 2004
    Messages : 758
    Par défaut
    Desole pour la reponse tardive mais j'etais malade ...
    bon ben avec tout ca je vais sans doute pouvoir m'en sortir !

    merci !
    @+

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

Discussions similaires

  1. Taille en pixels d'une chaine de charactere
    Par houma2001 dans le forum Général Python
    Réponses: 14
    Dernier message: 16/09/2012, 17h30
  2. Decomposition d'une chaine de caractere
    Par dalidov dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 02/11/2007, 19h43
  3. Ajouter une donnee a une chaine de charactere
    Par ben_118 dans le forum C++
    Réponses: 4
    Dernier message: 14/09/2006, 17h53
  4. récupere une partie de chaine de charactere
    Par 18Marie dans le forum Langage
    Réponses: 6
    Dernier message: 18/06/2006, 23h28
  5. chercher une chaine de charactere
    Par meddeb2001 dans le forum Access
    Réponses: 3
    Dernier message: 15/06/2006, 13h11

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