Verifier la saisie d'une adresse mac dans une textbox

endzero Messages postés 3 Date d'inscription jeudi 24 septembre 2009 Statut Membre Dernière intervention 1 avril 2010 - 1 avril 2010 à 15:40
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 1 avril 2010 à 22:05
bonjour, je dois créer une textbox pour y renseigner une adresse mac.

comment faire pour vérifier que cette adresse est au bon format XX-XX-XX-XX-XX-XX, avec les caractères 0 1 2 3 4 5 6 7 8 9 a b c d e f ?

Cette commande me servira pour faire du mac filtering sur un switch cisco.
merci de votre réponse

9 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
1 avril 2010 à 15:56
Salut,

Va voir ma source de filtre de saisie pour voir comment appliquer un filtre personnalisé à un JTextField.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
endzero Messages postés 3 Date d'inscription jeudi 24 septembre 2009 Statut Membre Dernière intervention 1 avril 2010
1 avril 2010 à 16:09
merci pour cette rapide réponse
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
1 avril 2010 à 16:37
Possible d'utiliser une expression rationelle (ou RegExp) :

^(?=..-..-..-..-..-..)(?:[0-9a-f]{2}-?)+$

Permet de valider la forme d'une adresse MAC

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
1 avril 2010 à 16:45
Salut,

Oups, au temps pour moi : ma source est faîte pour java, pas pour vb, désolé.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
endzero Messages postés 3 Date d'inscription jeudi 24 septembre 2009 Statut Membre Dernière intervention 1 avril 2010
1 avril 2010 à 16:54
oui j'ai vu,
c'est pas grave merci, je vais chercher vers les expressions

merci Renfield
0
cs_christoni Messages postés 140 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 1 novembre 2010 7
1 avril 2010 à 20:46
Bonsoir
pour analyser à "XX-XX-XX-XX-XX-XX", partant de la regex de Renfield :
^(?=..-..-..-..-..-..)(?:(([0-9a-f]{2}-?){5}([0-9a-f]{2}){1}))$

Soit 5 groupe de 2 caractères suivis d'un tiret et le dernier groupe sans tiret.

Pour tester :
    Private Sub btnAdressMac_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdressMac.Click

        Dim adressMac As String = tbAdressMac.Text
        Dim pattern As String
        pattern = "^(?=..-..-..-..-..-..)(?:(([0-9a-f]{2}-?){5}([0-9a-f]{2}){1}))$"
        If adressMac = Regex.Match(adressMac, pattern).ToString Then
            MessageBox.Show("OK")
        Else
            MessageBox.Show("NON")
        End If

    End Sub

Merci Renfield, je n'avais pas pigé les constructions de regroupement, là c'est clair.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
1 avril 2010 à 21:23
pourquoi avoir modifie ma regex ?

on peut faire :

^(?=..-..-..-..-..-..)(?:[0-9a-f]{2}-?)+$

ou si tu prefere :

^(?:[0-9a-f]{2}-){5}[0-9a-f]{2}$




Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
cs_christoni Messages postés 140 Date d'inscription mardi 25 novembre 2003 Statut Membre Dernière intervention 1 novembre 2010 7
1 avril 2010 à 21:58
Désolé.
Concernant votre première expression rationnelle, elle permet d'accepter:
XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX-XX...n fois et d'accepter le tiret en final.
La seconde est top, on ne peut plus concis, et pourquoi ne pas enlever le "?:" ?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
1 avril 2010 à 22:05
exact
se corrige ainsi:

(?=^..-..-..-..-..-..$)(?:[0-9a-f]{2}-?)+

pour le ?:
c'est l'habitude, pour ne pas extraire des valeurs dont on n'a pas besoin

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
0
Rejoignez-nous