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 :

[expression réguière]problème pour un montant


Sujet :

JavaScript

  1. #1
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 363
    Points : 161
    Points
    161
    Par défaut [expression réguière]problème pour un montant
    salut,

    j'ai fait une expression régulière pour vérifier que ce qui est entré dans mon champ texte est bien un montant(négatif ou positif), seulement elle ne marche pas, et je vois pas pourquoi, si quelqu'un pouvait m'aider...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ^\-?[0-9]*.[0-9]*$

  2. #2
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    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 681
    Points : 5 221
    Points
    5 221
    Par défaut
    en gros, si tu entres un caractère quelconque, avec ça, le test est positif

  3. #3
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 363
    Points : 161
    Points
    161
    Par défaut
    ouaip,

    comment t'as deviner?

  4. #4
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    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 681
    Points : 5 221
    Points
    5 221
    Par défaut
    disons que tu n'as pas échappé ton "point", qui correspond ainsi à un joker...

    alternative: gère simplement l'utilisation d'une virgule à la place d'un point, et pour le reste, fait confiance au type Number;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // n est la valeur du champ testé;
    if(isNaN(n.replace(',','.'))){
    alert('Entrez un nombre, merci.');return false}

  5. #5
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 363
    Points : 161
    Points
    161
    Par défaut
    merci,

    je vais utiliser le bout de code que tu m'as donné,

    sinon j'ai changé l'expression régulière en ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ^\-?[0-9]*\.?[0-9]*$
    et ca ne marche toujours pas, si je mets a12 par exemple, il me dit que c'est bon.

    j'aimerais bien savoir ce qui cloche...

  6. #6
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    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 681
    Points : 5 221
    Points
    5 221
    Par défaut
    tu l'utilises peut-être mal?

    tu peux montrer ton script complet?

  7. #7
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 363
    Points : 161
    Points
    161
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function validate(){
    	var chaine;
    	var re = new RegExp("^\-?[0-9]*\.?[0-9]*$");
    	chaine = document.oper.montant.value;
    	if(re.test(chaine)){
    		alert("chaine saisie ok!");
    		return false;
    	}
    	else{
    		alert("Le montant saisie est invalide!");
    		return false;
    	}
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="submit" onClick="return validate();">

  8. #8
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    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 681
    Points : 5 221
    Points
    5 221
    Par défaut
    comme tu utilises l'objet RegExp(), l'antislash est traité comme dans une chaîne standard: tu dois le doubler!

    /!\ n'appelle pas de script en cliquant sur le "submit"



    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
    <html> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> 
     
    <title>...</title> 
     
    <script type="text/javascript"> 
     
    function verif(n){ 
    if(isNaN(n.replace(',','.'))){ 
    alert('Entrez un nombre, merci.');return false}
    }
     
     
    </script> 
     
    </head> 
    <body> 
     
    <form id="f" action="" onsubmit="return verif(this.elements['t'].value)">
    <div>
    <input type="text" name="t" />
    <input type="submit" />
    </div>
    </form>
     
    </body> 
    </html>

  9. #9
    Membre habitué
    Inscrit en
    Février 2004
    Messages
    363
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 363
    Points : 161
    Points
    161
    Par défaut
    merci pour ton aide, je vais suivre tes conseils et utiliser l'evenement onsubmit

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

Discussions similaires

  1. Problème pour créer un DSN pour SQL-Server 2005 Express
    Par momoG dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 24/07/2007, 16h36
  2. [ANTLR/EXPRESS] Problèmes pour créer une grammaire de EXPRESS
    Par cotmar dans le forum Autres langages
    Réponses: 2
    Dernier message: 07/05/2007, 09h05
  3. [outlook express] problème pour envoyer messages
    Par Piccolo_son dans le forum Outlook Express / Windows Mail
    Réponses: 3
    Dernier message: 08/02/2007, 21h14
  4. [Java][Xpath] Problème pour rédiger une expression
    Par althea_vestrit dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 23/01/2006, 20h53

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