Partage
  • Partager sur Facebook
  • Partager sur Twitter

Fonction JS de vérification de Regex

Ne marche pas avec toutes les Regex...

Sujet résolu
    1 août 2011 à 14:14:11

    Bonjour à tous !

    Bon voilà j'ai un souci avec une fonction JS qui vérifie la validité du champ grâce à une regex, et affiche à côté un "OK" ou un "!!!" selon le cas..

    dans le formulaire j'ai :
    <input type="text" id="text1" onKeyUp="check_regex('text1','text_alert1',/^[0-9]+$/);"/>
    <div id="text_alert1">&nbsp;</div>
    

    et la fonction JS correspondante :
    function check_regex(id_text,id_alert,reg) {
         var valeur = document.getElementById(id_text).value;
         var alerte = document.getElementById(id_alert);
         var check = reg.test(valeur);
         if(check) {
              alerte.innerHTML = 'OK';
         } else {
              alerte.innerHTML = '!!!';
         }
    }
    


    Quand je mets comme paramètre de regex
    check_regex(*,*,/^[A-z0-9-]+$/)
    
    tout se passe très bien (j'obtiens un texte "OK" quand le champ valide la regex, et "!!!" sinon),
    et quand je mets
    check_regex(*,*,/^[0-9]+$/)
    
    , je n'obtiens que "!!!".

    Ca a l'air tellement bête que j'aurai sûrement honte de la réponse... :euh: , mais si vous pouviez m'aidez...

    Ah, et je ne sais pas si ça joue, mais je construit mon formulaire par php. Mais j'ai bien vérifié sur le code source, c'est bien le code ci-dessus que j'obtiens...
    • Partager sur Facebook
    • Partager sur Twitter
      1 août 2011 à 14:20:50

      Salut,

      Les 2 regex marchent chez moi (en remplaçant la 3eme ligne par var alerte, mais je suppose que c'est une erreur de Copier-Coller ;) )

      Rien au niveau de la console d'erreurs? N'importe quel nombre t'affiche '!!!' ?

      Edit : Pour tester : http://jsbin.com/ebiqur et http://jsbin.com/ebiqur/edit
      • Partager sur Facebook
      • Partager sur Twitter
        1 août 2011 à 14:27:35

        Merci de ta réponse.
        (Coquille de copier-coller corrigée.)

        Oui, n'importe quel nombre donne "!!!". En fait, n'importe quel caractère...

        Pour le lien, c'est vrai, je n'y pense jamais, mais jsbin est bien pratique...

        Et non, je n'ai aucune erreur signalée. Et puis, ça marche bien pour des regex différentes...

        Dernier point : je fonctionne en local sous wamp. Je ne sais pas s'il y a des instabilités connues sous le 2.1 ...
        • Partager sur Facebook
        • Partager sur Twitter
          1 août 2011 à 14:32:33

          Aucune raison, donne tout le code HTML pour voir si y a pas un souci de ce cote la, mais t'as bien vu que sur le jsbin, ça marche bien avec la 2eme Regex ;)
          • Partager sur Facebook
          • Partager sur Twitter
            1 août 2011 à 14:48:13

            Oui, j'ai vu qu'avec JSbin y'a aucun souci !

            EDIT : Voilà le HTML. J'ai enlevé les modules fonctionnels déjà testés, pour plus de lisibilité...

            J'espère que le code n'est pas trop cra-cra ... ^^

            <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">  
            <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">  
                 <head>  
                      <title>Titre</title>  
                      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />  
                      <meta name="language" content="fr" />  
                      <link rel="stylesheet" title="Design" href="css/design.css" type="text/css" media="screen"/>  
                      
                      <!-- CHARGEMENT DU JAVASCRIPT -->  
                      <!-- JS GENERAL -->  
                      <script type="text/javascript" src="js/speed.js"></script>  
                      <script type="text/javascript" src="js/fonctions.js"></script>  
                      <script type="text/javascript" src="js/oXHR.js"></script>  
                      <!-- JS SPECIFIQUE A CETTE PAGE -->  
                      <script type="text/javascript" src="js/ajout_composants.js"></script>  
                      <script type="text/javascript" src="js/ajout_processeur.js"></script>  
                      <!-- FIN DE CHARGEMENT DU JAVASCRIPT -->  
                 </head>  
                 <body>   
             
                      <form action="" method="post" name="ajouter_moniteur">  
              
                           <label for="cm_reference" class="float2">Référence :</label>
                           <input type="text" name="cm_reference" id="cm_reference" size="10" value="-" 
                           onClick="if(this.value == '-'){this.value = ''}" 
                           onBlur="if(this.value == ''){this.value = '-'}" 
                           onKeyUp="check_regex('cm_reference','text_box_cm_reference',/^[A-z0-9-]+$/);"/>
                           <div id="text_box_cm_reference" class="prompt_alert">&nbsp;</div><br/>    
              
                           <label for="moniteur_format" class="float2">Format (pouces) :</label>
                           <input type="text" name="moniteur_format" id="moniteur_format" size="10" value="-" 
                           onClick="if(this.value == '-'){this.value = ''}" 
                           onBlur="if(this.value == ''){this.value = '-'}" 
                           onKeyUp="check_regex('moniteur_format','text_box_moniteur_format',/^[0-9]+$/);"/>
                           <div id="text_box_moniteur_format" class="prompt_alert">&nbsp;</div><br/>  
              
                           <div class="center"><input type="submit" value="Ajouter" /></div>  
                      </form>   
                 </body>  
             </html>
            


            EDIT 2 : Ca y est, j'ai trouvé le problème ! Bon ben j'ai bien fait mon boulet... :-° Le champ avait un id pas unique... voilà voilà... Désolé pour le dérangement et merci pour les réponses ! ^^
            • Partager sur Facebook
            • Partager sur Twitter

            Fonction JS de vérification de Regex

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown