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 = extraire value d'une balise input par son "name"


Sujet :

JavaScript

  1. #1
    Membre habitué
    Avatar de NoobX
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 195
    Points : 140
    Points
    140
    Par défaut regexp = extraire value d'une balise input par son "name"
    Bonjour @ll !

    Voila mon probleme !
    J'ai une variable "chaine" qui contient le code html d'une autre page web !

    Ex de la page ultra-simplifié :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Document sans titre</title>
    </head>
     
    <body>
    <form id="form1" name="form1" method="post" action="">
    <table width="200" border="1">
      <tr>
        <td><input name="nom" type="text" value="kirikou"/></td>
        <td><input name="telephone" type="text" value="0102030104"/></td>
        <td><input name="" type="text" /></td>
      </tr>
      <tr>
        <td><input name="" type="text" /></td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
    </table>
    </form>
     
    </body>
    </html>
    a partir de cette source je voudrais extraire la valeur du champs "nom" et la valeur du champs "telephone" !

    pour finalement n'utiliser que ces deux informations extraite dans la suite de mon script !

    Je pense qu'il faut utiliser la fonction macth() avec une regexp qui repere les balise input par leur "name" et extrait la "value" correspondante !

    mais alors pour créer la regexp fouyaya je suis perdu donc si vous avez des idées, liens, solutions je suis preneur !
    Merci

  2. #2
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    bonjour,

    Tu ne peux rien faire si ce code HTML se trouve dans une variable.
    Les valeurs des input ne sont pas dans cette variable, il n'y a donc rien à prendre.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 397
    Points : 430
    Points
    430
    Par défaut
    Rien compris à ce que tu voulais faire, mais pour obtenir la value de tes champs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var nom=document.getElementsByName('nom');
    nom[0].value contient la value.

    LA même chose est possible pour téléphone.

    Je n'ai par contre rien compris à l'histoire de chaine provenant d'une autre page...

  4. #4
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 648
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 648
    Points : 11 137
    Points
    11 137
    Par défaut
    Je n'ai pris que les caractères alphabétiques, les nombres ainsi que le point et le _.

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      var expreg = /(value=\"[a-z0-9\._]+\")/gi;
     
      alert(chaine.match(expreg));

    ce code affichera :
    value="kirikou"
    value="0102030104"
    ensuite tu appliques un second filtre pour supprimer les guillemets et value

  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 661
    Points
    66 661
    Billets dans le blog
    1
    Par défaut
    oui à ceci pret qu'il faudrait mettre al chaine en innerHTML d'un div créé en document.createElement pour ensuite le parser ... getELementsByTagName ...


    sinon dans la chaine avec une regExp ça doit être réalisable mais bon jour la regExp :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <script type='text/javascript'>
    var Zone='<input name="telephone" type="text" value="0102030104"/>'
    var reg=/^<input name="telephone" (.+[^>]) value="([0-9]+)"\/>$/i;
     
                      Zone.match(reg,'i');
                      Zone = RegExp.$2;
                      alert ('telphone : '+Zone);
     
                     </script>
    a voir pour ce qui est des espaces en fin de balise
    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 habitué
    Avatar de NoobX
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 195
    Points : 140
    Points
    140
    Par défaut
    Merci @ tous !
    Je continu de me trituré le cerveau la-dessus !
    J'oublie pas le tag résolu mais pour l'instant je suis pas au point donc je laisse ouvert


    Edit : Finalement apres de longue et super penibles recherches j'ai fini par opter pour la méthode avec un div et getelementsbyname qui ai beaucoup plus simple a utiliser (enfin pour moi) !

    @ bientot et merci

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

Discussions similaires

  1. [HTML 4.0] Remplacer une balise <INPUT> par une balise <BUTTON> ou <a href>
    Par LeHibou dans le forum Balisage (X)HTML et validation W3C
    Réponses: 10
    Dernier message: 28/09/2012, 13h54
  2. [SimpleXML] Afficher le contenu d'une balise définie par son attribut
    Par souffle56 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 28/02/2010, 20h43
  3. Ajouter un évenement à une balise input
    Par kirsoul dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 10/01/2007, 15h28
  4. Réponses: 4
    Dernier message: 18/11/2003, 16h08

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