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

VB.NET Discussion :

Meilleure approche de validation


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 430
    Par défaut Meilleure approche de validation
    Bonjour

    J'aimerais développer une petite fonction qui valide le contenu d'un textbox nomé text1:

    - Il faut que le premier caractère soit le chiffre 4 ou la lettre C
    - Il faut que les caractères suivants sont stricement des chiffres entre 0 et 9
    - Il faut que la longueur totale soit égale à 7


    1- Mid(text1, 1, 1) = 0 ou Mid(text1, 1, 1) = 'C'
    2- Len(text1) = 7
    3- .....

    Existe t-il une fonction du genre "Isnumber" en VB.NET ? ou faut-il absolument passer par le code ASCII ?

    Merci.

  2. #2
    Membre émérite Avatar de yonpo
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2010
    Messages
    617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 617
    Par défaut
    Salut,

    Pourquoi pas une expression régulière du style (testé)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ^([4|C]{1})([0-9]{0,6})$

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 700
    Par défaut
    Bonjour,
    je pensais à la même chose comme cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        Private Sub text1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles text1.Validating
            Dim entreeATester As String = text1.Text
            Dim pattern As String
            pattern = "^(4|C)[0-9]{6}$"
     
            If entreeATester = Regex.Match(entreeATester, pattern).ToString Then
                MessageBox.Show("OK")
            Else
                MessageBox.Show("NON")
            End If
        End Sub

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    1- Mid(text1, 1, 1) = 4 ou Mid(text1, 1, 1) = 'C'
    2- Len(text1) = 7
    3- isnumeric (mid(text1,2,6))

    à savoir que mid, len et isnumeric sont importées d'une dll de compatibilité vb6
    sur vb.net il y a des méthodes sur la classe string (substring, length ...)
    m'enfin les méthodes de compatibilité pointes vers les vrais méthodes vb.net donc ca ne change que l'écriture
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 430
    Par défaut
    Citation Envoyé par Pol63 Voir le message
    1- Mid(text1, 1, 1) = 4 ou Mid(text1, 1, 1) = 'C'
    2- Len(text1) = 7
    3- isnumeric (mid(text1,2,6))

    à savoir que mid, len et isnumeric sont importées d'une dll de compatibilité vb6
    sur vb.net il y a des méthodes sur la classe string (substring, length ...)
    m'enfin les méthodes de compatibilité pointes vers les vrais méthodes vb.net donc ca ne change que l'écriture
    le Mid(text1, 1, 1) = 4 ou Mid(text1, 1, 1) = 'C' me donne des erreurs sur la conversion. C'est parce que on a un chiffre et aussi une lettre. J'ai essayé avec Ctype et Cint et ca marche pas bien.

    J'ai utilisé celui de chrismonoye et ça marche bien.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pattern = "^(4|C)[0-9]{6}$"
    Merci chrismonoye et yonpo.

    Pol63, est-ce que tu sais comment arranger le problème de conversion.

    essaye le dans un énoçé IF ... then

    Merci.

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    mid renvoie une chaine de caractère, je vois pas ce que le code ascii vient faire la dedans
    si tu veux savoir si la chaine de caractère vaut "4" tu testes si mid() = "4"
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/03/2011, 16h20
  2. Réponses: 1
    Dernier message: 21/02/2010, 09h42
  3. quelle est la meilleure approche?
    Par gokud-o-matic dans le forum Débuter
    Réponses: 8
    Dernier message: 25/08/2008, 19h31
  4. [AJAX] Meilleure approche pour un "concept"
    Par blueice dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 10/03/2008, 10h19
  5. [vb.net] meilleur approche pour creer un control
    Par graphicsxp dans le forum Windows Forms
    Réponses: 3
    Dernier message: 17/05/2005, 16h09

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