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 :

Parser une chaine


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 29
    Points : 18
    Points
    18
    Par défaut Parser une chaine
    Bonjour,

    J'ai une chaine qui est comme celà :
    #nom
    (
    age
    poids
    )
    #nom
    (
    age
    poids
    )
    #nom
    (
    age
    poids
    )

    Ce qui donne :
    #dupont
    (
    31
    80
    )
    #durand
    (
    32
    100
    )
    etc

    Je voudrais recuperer en fonction du nom, le poids et l'age
    Avez vous une idée ?
    Merci !

  2. #2
    Membre actif
    Avatar de doof
    Inscrit en
    Août 2003
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 160
    Points : 294
    Points
    294
    Par défaut
    Salut,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    name = 'dupont';
    var rex = new RegExp("#"+name+"\n\\(\n(\\d+)\n(\\d+)", "gi");
    match = rex.exec(str);
    resultat dans match[1] et match[2]

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Je viens de decouvrir cette fonction, merci beaucoup ! Mais celà ne fonctionne pas.
    Avec un exemple plus simple :
    #dupont(31,80)
    comment on procede pour trouver dupont ?
    merci beaucoup !

  4. #4
    Membre actif
    Avatar de doof
    Inscrit en
    Août 2003
    Messages
    160
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 160
    Points : 294
    Points
    294
    Par défaut
    Attention a tes retours a la ligne !! il faut savoir absolument s'il y en à et de quel type ils sont (soit \n soit \r\n, soit \r) ta chaine est-elle générée en "brute" dans ton script ou bien dynamiquement ?

    S'il n'y a pas de retours a la ligne, il faut enlever les \n :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var rex = new RegExp("#"+name+"\\((\\d+)(\\d+)", "gi");
    note que je part du principe que ta chaine est contenue dans la variable str, a toi de l'adapter.

    Si tu veux trouver juste dupont, ca revient a dire que tu cherches dupont précédé par un #, ce qui donnerait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var rex = new RegExp("#dupont", "i")
    le 2eme argument "i" pour faire une recherche insensible a la casse.

  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 637
    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 637
    Points : 66 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    sinon un split sur le "#"
    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 à l'essai
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Merci à tous, ca fonctionne impec !

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 29
    Points : 18
    Points
    18
    Par défaut
    Encore une petite question :
    si ma chaine est :
    #test(chaine1,chaine2, chaine3,chaine4)

    Quel est le parametre pour les chaines ?
    Car b+ ne renvoie que les nombres
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var rex = new RegExp("#"+name+"\\((\\b+),(\\b+)", "gi");
    Par quoi remplacer ?
    Et dans ce cas, il y a uniquement que deux resultats, comment en mettre plus (que celà soit automatique) ?
    Merci !!!

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

Discussions similaires

  1. [XML] Parser une chaine de caractère XML
    Par lololeuleu dans le forum APIs
    Réponses: 10
    Dernier message: 16/08/2007, 21h27
  2. Parser une chaine de caractère
    Par Nasky dans le forum C++
    Réponses: 7
    Dernier message: 04/12/2006, 19h37
  3. Parser une chaine de doubles
    Par Ange44 dans le forum C++
    Réponses: 9
    Dernier message: 28/06/2006, 13h12
  4. Réponses: 9
    Dernier message: 30/11/2005, 18h18
  5. Parser une chaine en shell script
    Par Gogoye dans le forum Linux
    Réponses: 10
    Dernier message: 19/07/2004, 17h49

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