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 regulière mal conçue [RegExp]


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2009
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 35
    Points : 35
    Points
    35
    Par défaut Expression regulière mal conçue
    Bonsoir à tous et à toute

    soit la fonction suivante

    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
     
    function veriftarif (champ)
    {
     var reg=/^(1[0-9][0-9]|[1-9][0-9]|[0-9])((\,)[0-9][0-9])?$/
     if (reg.exec(champ)==null)
     {
            alert ( "Saisissez un prix comme ceux ci ex: 13,86" );
      }   
      else       
    {
     
     alert ( "bon" );      
     }
     
     
    }


    qui doit vérifier une gamme de prix allant de 0,1 à 999,99
    quand on tape0,10 pas de pb
    quand on tape 0,1 ça ne marche plus
    en plus après 150,00 ça ne marche plus .
    n'étant pas trop doué avec les regexp, je ne vois plus comment faire
    alors si quelqu'un a une piste elle est la bienvenue
    et je la remercie d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    pourquoi pas faire un parseFloat?

    Sinon pour la regex plus quelque chose du genre
    edit c'est pas bon on autorise de 0,00 à 0,09
    il faut interdire le dixième nul

    de fait quelque chose comme ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    /^\d{1,3}(,[1-9]\d?)?$/
    mais un parseFloat reste plus avisé...

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2009
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 35
    Points : 35
    Points
    35
    Par défaut
    merci ça fonctionne
    mais dis moi le parsefloat ne permet pas de contrôler le format ? si

    je met resolu
    merci en tout cas

  4. #4
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    a=parseFloat(n)
    return isNan(a)||a<0.1||a>999.99
    le cas 1.555 (trois decimales) est accepté mais il y a peu d'effort à faire si on veut en particulier vérifier qu'il n'y ait exclusivement qu'au plus 2 décimales

  5. #5
    Expert confirmé
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Points : 4 845
    Points
    4 845
    Par défaut
    Sinon, pour ton expression régulière, essaye ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var reg=/^([1-9][0-9]{0,2}|0)(,[0-9]{1,2})?$/

  6. #6
    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 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    aller j'y vais de la mienne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ([0-9]|[1-9][0-9]{0,2})(,(([1-9])|([0-9][1-9])))?$
    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 !

  7. #7
    Expert confirmé
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Points : 4 845
    Points
    4 845
    Par défaut
    J'avais pas fais gaffe à ça :
    Citation Envoyé par RICXLS Voir le message
    qui doit vérifier une gamme de prix allant de 0,1 à 999,99
    Du coup ça donne plutôt ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var reg=/^(0,[1-9][0-9]?)|(([1-9][0-9]{0,2})(,[0-9]{1,2})?)$/
    @SF : tu peux pas test !

  8. #8
    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 656
    Points
    66 656
    Billets dans le blog
    1
    Par défaut
    je peux pas quoi ?
    ha oui
    oki
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ^([0-9]|[1-9][0-9]{0,2})(,(([1-9])|([0-9][0-9])))?$
    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 !

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

Discussions similaires

  1. Recherche recursive à l'aide des expressions reguliére
    Par titoff dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/12/2005, 16h42
  2. [RegEx] aide pour une expression regulière
    Par hugo123 dans le forum Langage
    Réponses: 5
    Dernier message: 24/11/2005, 15h41
  3. ET dans une expression regulière
    Par kesako dans le forum Langage
    Réponses: 4
    Dernier message: 10/11/2005, 12h57
  4. Problème expression regulière ??
    Par panaone dans le forum Langage
    Réponses: 5
    Dernier message: 18/08/2005, 13h41
  5. Variables et Expression Regulière
    Par Temari dans le forum Langage
    Réponses: 5
    Dernier message: 05/08/2005, 01h55

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