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 :

Avec nombres decimaux et opérateur [RegExp]


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 29
    Par défaut Avec nombres decimaux et opérateur
    Bonjour,

    Mon expression :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var reg2 = new RegExp("^[0-9]+([.]?[0-9]+)*[/*+-]?([0-9]*[.]?[0-9]*)?[0-9]*$");
    Pour le moment cette expression fonctionne pas trop mal sauf dans les cas ou :

    Exemple : 3.3.
    Exemple : 3.3+.

    Je voudrais que cet éventuel 2eme point ne soit autorisé qu'après l'opérateur et un chiffre.

    Exemple: 3.3*3.3

    Merci pour vos réponses.

  2. #2
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^\d+(\.\d+)([+*/-]\d+(\.\d+))*$
    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 !

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 29
    Par défaut
    Oui, sauf que la vérification se fait sur le cumul à chaque nouvelle saisie d'un caractère.
    3 -> vérification
    3. -> vérification
    3.3 -> vérification
    3.3* -> vérification...
    Donc tout doit être optionnel en fait, enfin je crois.

  4. #4
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    sauf que pour moi ça ne doit pas valider lorsque la chaine se termine par un . ou un operateur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ^\d+((\.(?>\d)\d*)?([+*/-](?>\d)(\d+(\.(?>\d)\d*)?)?))?
    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 !

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    29
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2012
    Messages : 29
    Par défaut
    sauf que pour moi ça ne doit pas valider lorsque la chaine se termine par un . ou un operateur
    Oui, mais ça c'est testé seulement si j’appuie sur la touche = avec un autre schéma.

    Sinon pour ton expression ça me dit 'invald quantifier'

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var regx = new RegExp("^\\d+((\\.(?>\\d)\\d*)?([+*/-](?>\\d)(\\d+(\\.(?>\\d)\\d*)?)?))?");
    la partie de mon code qui traite la saisie (si ça peut t'aider à m'aider):

    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
    var reg1 = new RegExp("[^<C=][0-9]?[./*+-]?");
                var reg2 = new RegExp("^[0-9]+([.]?[0-9]+)?[/*+-]?[0-9]*([0-9]*[.]?[0-9]*)?[0-9]*$");
                var regtest = new RegExp("^\\d+((\\.(?>\\d)\\d*)?([+*/-](?>\\d)(\\d+(\\.(?>\\d)\\d*)?)?))?");
                var saisieCumule="";
                function checkEnter(enter){
                   if(reg1.test(enter)){
                       saisieCumule += enter;
                       if(regtest.test(saisieCumule)){
                           return true;
     
                       }else{
                           saisieCumule = saisieCumule.slice(0, -1);
                           return false;
                       }
                   }else{
                       return false;
                   }
                }

  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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    var regx = /^\d+((\.(?=\d)\d*)?([+*/-](?=\d)(\d+(\.(?=\d)\d*)?)?))?/;
    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. problème avec nombre au niveau forms
    Par momo9237 dans le forum Oracle
    Réponses: 2
    Dernier message: 08/11/2005, 18h22
  2. Débutant: Aide avec nombre Armstrong
    Par D3V1L J4M dans le forum C++
    Réponses: 5
    Dernier message: 31/10/2005, 11h35
  3. round avec nombre de décimale spécifiée
    Par bilb0t dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 14/04/2005, 16h44
  4. Réponses: 1
    Dernier message: 11/10/2004, 10h47
  5. UNION de deux SELECT avec nombre d'arguments différents
    Par orus8 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 16/07/2004, 14h32

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