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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2004
    Messages : 166
    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 : 44
    Localisation : Belgique

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

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    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 ?

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 166
    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
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mars 2007
    Messages
    49
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2007
    Messages : 49
    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 confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    166
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2004
    Messages : 166
    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