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

ASP.NET Discussion :

Expression régulières poiur un format et un range


Sujet :

ASP.NET

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2004
    Messages : 166
    Points : 123
    Points
    123
    Par défaut Expression régulières poiur un format et un range
    Je souhaite écrire une expression régulière me permettant de valider un nombre (entier ou décimal avec 1 ou 2 digit après la virgule) compris entre 6 (ou 6.00) et 100 (ou 100.00)

    - doit prendre en compte le . et la ,
    - exemple de valeurs correctes: 6.00 6,45 100 100,00 95.1
    - exemple de valeurs incorrects: 5.99 9.456 100,01 145

    J'ai ecrit une expression régulière me permettant de tester la validiter du format de saisi mais je n'arrive pas à teser le range.
    J'ai essayer avec un range validator avec le type double, mais celui-ci ne valide pas la saisie avec une ,

    Actuellement j'ai fait ceci (qui semble fonctionner):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (^[6-9]{1}$)|(^[6-9]{1}[\.,]{1}[0-9]{1,2}$)|(^[1-9]{1}[0-9]{1}$)|(^[1-9]{1}[0-9]{1}[\.,]{1}[0-9]{1,2}$)|(^100[\.,]{1}[0]{1,2}$)|(^100$)
    merci pour votre aide.

  2. #2
    Membre expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    Une regexp (simple) ne pourra pas te valider une range..

    Il te suffit de convertir ta , en . juste avant la validation par le range validator, via javascript, avec par exemple un test sur la perte de focus.

    Ca devrait le faire non ?
    Si ton problème a une solution, rien ne sert de t'inquiéter..
    Si il n'en a pas, t'inquiéter ne sert à rien


  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2004
    Messages : 166
    Points : 123
    Points
    123
    Par défaut
    OUi ca peut le faire.
    Ca me gêne juste un petit peu au niveau de la culture des utilisateurs.

    Pour l'instant, je vais garder mas regex qui à l'air de fonctionner.

  4. #4
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 49
    Points : 39
    Points
    39
    Par défaut
    En ce qui concerne la culture, j'utilise une petite méthode qui permet de se détacher du fait que les utilisateurs saisissent une virgule ou un point.

    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
    30
    31
    32
    33
    34
     
        /// <summary>
        /// fonction permettant de saisir des nombres décimaux sans prendre en compte la culture.
        /// le but est de se détacher du fait de saisir soit un '.' soit une ','
        /// </summary>
        /// <param name="nombre">nombre saisi</param>
        /// <returns>le float créé</returns>
        public static float ReadDecimal(string nombre)
        {
            CultureInfo uiCulture;
            CultureInfo cultureCourante;
            float result;
     
            nombre = nombre.Replace(',', '.');
            nombre = nombre.Trim();
     
            if (string.IsNullOrEmpty(nombre))
                return 0;
     
            //sauvegarde de la culture courante
            cultureCourante = Thread.CurrentThread.CurrentCulture;
            uiCulture = Thread.CurrentThread.CurrentUICulture;
     
            //modification de la culture courante
            Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
     
            result = Single.Parse(nombre);
     
            //on remet la culture d'origine
            Thread.CurrentThread.CurrentCulture = cultureCourante;
            Thread.CurrentThread.CurrentUICulture = uiCulture;
     
            return result;
        }
    Si ça peut t'aider...

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2004
    Messages : 166
    Points : 123
    Points
    123
    Par défaut
    Arf, j'ai oublié de préciser: la vérification doit s'effectuer coté client.

Discussions similaires

  1. format expression régulière
    Par r83 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/09/2008, 09h12
  2. expression réguliére et format d'une date
    Par ouadie99 dans le forum C#
    Réponses: 2
    Dernier message: 28/04/2008, 17h56
  3. [RegEx] expressions régulières et format de date
    Par Lydie12 dans le forum Langage
    Réponses: 12
    Dernier message: 12/06/2007, 09h46
  4. [DEBUTANT] Format de date - expression régulière
    Par jpillonel dans le forum Langage
    Réponses: 2
    Dernier message: 07/03/2007, 10h48
  5. [Noob] Formation rapide à Perl - Expressions régulières
    Par Konrad Florczak dans le forum Langage
    Réponses: 16
    Dernier message: 25/09/2006, 14h48

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