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 :

syntaxe de recherche d'un élément dans liste


Sujet :

JavaScript

  1. #1
    Membre averti Avatar de mussara
    Inscrit en
    Novembre 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2004
    Messages : 442
    Points : 348
    Points
    348
    Par défaut syntaxe de recherche d'un élément dans liste
    bonjour à tous

    je n'arrive pas à me dépatouiller pour l'écriture d'un script js qui me permettrait de savoir si les chiffres données appartiennent bien à une liste de valeurs...

    j'ai une liste qui est 12,13,44,25,16

    dans un formulaire, si on tape 12000 ça doit me sortir vrai, si on tape 16025 ça doit me sortir vrai et si on tape 37025 ça doit me sortir faux etc...

    donc j'extraie les 2 premiers chiffres de la valeur rentrée dans le formulaire et j'aimerai la comparer avec les valeurs 12,13,44,25,16

    mais je coince...

    j'ai commencé à écrire pas grand chose, car je n'avais que des erreurs...:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    function isPariscodepostal(elem) {
    	var str = elem.value;
    	var dpt = str.substring(0,2);
    }
    si quelqu'un peut m'aider...

    merci beaucoup

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

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

    essaye avec les expressions régulières :
    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
     
    <html>
    <head>
    <title></title>
     
    <script type="text/javascript">
    <!--
    function testValeur()
    {
     var valeur = document.getElementById("idText").value;
     var exp = new RegExp("(^12|^13|^16|^25|^44)","gi");
     
     alert(exp.test(valeur));
     
    }
     
    //-->
    </script>
     
    </head>
     
    <body>
     
    <input type="text" id="idText">
    <input type="button" value="Bouton" id="idButton" onclick="testValeur()">
     
    </body>
     
    </html>
    affiche vrai si la chaîne commence par 12, 13, 16, 25, ou 44. Attention quand même : l'expression régulière ne teste pas si la valeur est un nombre ; 16coucou renvoie vrai

  3. #3
    Modérateur
    Avatar de Bisûnûrs
    Profil pro
    Développeur Web
    Inscrit en
    Janvier 2004
    Messages
    9 880
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Janvier 2004
    Messages : 9 880
    Points : 16 278
    Points
    16 278
    Par défaut
    Citation Envoyé par Auteur
    bonjour,

    essaye avec les expressions régulières :
    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
     
    <html>
    <head>
    <title></title>
     
    <script type="text/javascript">
    <!--
    function testValeur()
    {
     var valeur = document.getElementById("idText").value;
     var exp = new RegExp("(^12|^13|^16|^25|^44)","gi");
     
     alert(exp.test(valeur));
     
    }
     
    //-->
    </script>
     
    </head>
     
    <body>
     
    <input type="text" id="idText">
    <input type="button" value="Bouton" id="idButton" onclick="testValeur()">
     
    </body>
     
    </html>
    affiche vrai si la chaîne commence par 12, 13, 16, 25, ou 44. Attention quand même : l'expression régulière ne teste pas si la valeur est un nombre ; 16coucou renvoie vrai
    Donc on peut améliorer l'expression régulière, je pense à un truc de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var exp = new RegExp("/(^12|^13|^16|^25|^44)[0-9]{3}/","gi");

  4. #4
    Membre averti Avatar de mussara
    Inscrit en
    Novembre 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2004
    Messages : 442
    Points : 348
    Points
    348
    Par défaut
    merci de vos explications
    c'est très clair

    par contre pourquoi me conseillez vous de rechercher des débuts de chaine de caractère, plutôt que de comparer un substring avec une liste déléments? (ce que je ne savais pas faire et que je n'arrive toujours pas à faire... )

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 650
    Points : 11 141
    Points
    11 141
    Par défaut
    par contre pourquoi me conseillez vous de rechercher des débuts de chaine de caractère, plutôt que de comparer un substring avec une liste déléments? (ce que je ne savais pas faire et que je n'arrive toujours pas à faire... )
    si tu peux :
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    <html>
    <head>
    <title></title>
     
    <script type="text/javascript">
    <!--
    function testValeur()
    {
     var strComp = new Array("12","13","16","25","44");
     var strValeur = document.getElementById("idText").value.toString();
     var debValeur, test = false, i;
     
     if (strValeur.length>=2)
     {
      debValeur = strValeur.substring(0,2);
     
      for (i=0; i<strComp.length;i++)
      {
         if (debValeur==strComp[i])
            test = test|true;
      }
     }
     
     alert(test);
     
    }
     
    //-->
    </script>
     
    </head>
     
    <body>
     
    <input type="text" id="idText">
    <input type="button" value="Bouton" id="idButton" onclick="testValeur()">
     
    </body>
     
    </html>
    -cela t'oblige à faire une boucle et à tester chaque élément du tableau (strComp) avec le début de la chaîne (debValeur).
    -le problème est que là aussi tu ne sais pas si strValeur est un nombre (sinon il faudra tester chaque élement de la chaîne, ce qui implique une autre boucle).

    L'avantage du code donnée par BisounoursJos est qu'il tient en 2 lignes.

  6. #6
    Membre averti Avatar de mussara
    Inscrit en
    Novembre 2004
    Messages
    442
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2004
    Messages : 442
    Points : 348
    Points
    348
    Par défaut
    merci pour toutes les explications

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

Discussions similaires

  1. Recherche retournant plusieurs résultats dans liste déroulante.
    Par Yann56 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/01/2010, 01h49
  2. [MySQL] Ajouter élément dans liste de sélection
    Par nadia lydia dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 12/06/2009, 20h42
  3. Ajout nouveaux éléments dans liste de choix
    Par Crazyblinkgirl dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 23/06/2006, 15h17
  4. Recherche d'un élément dans une liste triée (vitesse)
    Par Rodrigue dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 18/05/2006, 09h23
  5. Suppression élément dans liste
    Par bugmenot dans le forum C
    Réponses: 12
    Dernier message: 06/12/2005, 19h52

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