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 et Firefox


Sujet :

JavaScript

  1. #1
    Expert confirm�
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par d�faut RegExp et Firefox
    bonjour,

    je cherche � tester si un input contient des nombres (positifs, n�gatifs, entiers, ou d�cimaux). J'utilise donc une expression r�guli�re :

    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("idNB").value;
     var ExpNb = /(^\-?[0-9]+$)|(^\-?[0-9]+\.[0-9]+$)/g;
     
     document.getElementById("idRep").value = ExpNb.test(valeur);
     
    }
     
    //-->
    </script>
     
    </head>
     
    <body>
     
    <input type="button" value="Bouton" id="BNom" onclick="TestValeur()">
    <input type="text" value="" id="idNB" size="20" maxlength="10">
    <input type="text" value="" id="idRep" size="20" maxlength="10">
     
    </body>
    </html>
    Je pense mon expression r�guli�re juste. Sous IE, je n'ai pas de souci. Par contre sous Firefox :
    -entrez un nombre dans "idNB"
    -cliquez une 1�re fois sur le bouton > la valeur true appara�t dans l'input "idRep"
    -cliquez une 2nde fois sur le bouton (sans changer la valeur )> la valeur false appara�t dans l'input

    Par contre, si je tape autre chose qu'un nombre, le r�sultat est toujours false.

    Quelqu'un a une explication ? Est-ce firefox (1.0) ou mon expression r�guli�re ?

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

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par d�faut
    ca va peut etre pas t'aider mais que fais tu de isNaN ?

  3. #3
    R�dacteur
    Avatar de MasterOfChakhaL
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2004
    Messages
    2 147
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France

    Informations professionnelles :
    Activit� : D�veloppeur Web

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 147
    Par d�faut
    Pour pr�ciser, si tu cliques sur bouton, tu obtiens true et false un coup sur deux...

    j'ai pas compris pourquoi...
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    N'oubliez pas de cliquer sur quand votre question � trouv� une solution.

    Si vous n'avez pas encore lu les r�gles du club, mieux vaut tard que jamais!

  4. #4
    Expert confirm�
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par d�faut
    Citation Envoy� par siddh
    ca va peut etre pas t'aider mais que fais tu de isNaN ?
    oui en effet . Je connaissais NaN mais pas isNaN.

    Citation Envoy� par MasterOfChakhaL
    Pour pr�ciser, si tu cliques sur bouton, tu obtiens true et false un coup sur deux...

    j'ai pas compris pourquoi...
    Moi non plus. D'ailleurs cela me le fait �galement pour cette expression r�guli�re sur le format des dates (jj/mm/aaaa) :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    var ExpDate = /^[0-9]{2}\/{1}[0-9]{2}\/{1}[0-9]{4}$/gi;
     document.getElementById("idRep").value = ExpDate.test(valeur);
    un bug Firefox ?? Ou j'oublie quelque chose dans mon script ?

  5. #5
    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
    ton contr�le de dates est inefficace (rien � voir avec les regexp en fait, puisqu'il s'agit de l'objet Date());

    � part �a, si tu testes:

    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
     
    <script type="text/javascript">
     
    function TestValeur(n){
    result= isNaN(n) ? "données erronées" : "données correctes";
     document.getElementById("idRep").value=result
    }
     
    </script>
     
    <p>
    <input type="button" value="Bouton" id="BNom" onclick="TestValeur(document.getElementById('idNB').value)" />
    <input type="text" value="" id="idNB" size="20" maxlength="10" />
    <input type="text" value="" id="idRep" size="20" maxlength="10" />
    </p>
    tu n'auras aucun probl�me;

  6. #6
    Expert confirm�
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par d�faut
    ton contr�le de dates est inefficace (rien � voir avec les regexp en fait, puisqu'il s'agit de l'objet Date());
    1-en fait il s'agit de v�rifier si la chaine est de la forme jj/mm/aaaa (ou nn/nn/nnnn avec 0=<n<=9). Rien de plus.
    2-Il est vrai aussi que je peux v�rifier si mon input contient un nombre avec isNaN.

    -----
    En fait ce qui m'intrigue c'est pourquoi avec firefox, lors du clic sur le bouton, j'obtiens, avec la m�me valeur, true et false une fois sur deux. Essaye avec une expression r�guli�re quelconque.

    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
     
    <html>
    <head>
    <title></title>
    <script type="text/javascript">
    <!--
    function TestValeur()
    {
     var Expression = /abc/gi
     alert(Expression.test("aaa_abc_aaa"));
    }
     
    //-->
    </script>
    </head>
     
    <body>
     
    <input type="button" value="Bouton" id="BNom" onclick="TestValeur()">
     
    </body>
    </html>
    ici alert affichera une fois sur deux true et false. Est-ce mon expression r�guli�re qui est fausse ? Avec IE je n'ai aucun souci.

  7. #7
    Expert confirm�
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    D�tails du profil
    Informations personnelles :
    �ge : 49

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Par d�faut
    as tu essay� en la construisant avec un new Regexp ?

  8. #8
    Expert confirm�
    Avatar de Auteur
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    7 660
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 7 660
    Par d�faut
    Citation Envoy� par siddh
    as tu essay� en la construisant avec un new Regexp ?
    que je suis !.

    Avec RegExp �a marche. Donc a priori avec Firefox, il n'est pas recommand� d'utiliser la syntaxe /expression/options.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. RegExp IE vs Firefox
    Par keaton7 dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 14/04/2009, 15h03
  2. Regexp et firefox
    Par nicolb dans le forum G�n�ral JavaScript
    R�ponses: 23
    Dernier message: 06/10/2005, 21h08
  3. Regexp ok sur IE pas sur Firefox
    Par zebuman dans le forum G�n�ral JavaScript
    R�ponses: 2
    Dernier message: 25/06/2005, 13h17
  4. [langage] [RegExp] Question d'expression régulière
    Par cloogy dans le forum Langage
    R�ponses: 5
    Dernier message: 08/10/2003, 09h29
  5. regexp
    Par mathieu g�rard dans le forum ASP
    R�ponses: 4
    Dernier message: 02/10/2003, 18h05

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