Verifier la saisie d'une adresse mac dans une textbox

Signaler
Messages postés
3
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
1 avril 2010
-
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
-
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

Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
126
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
Messages postés
3
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
1 avril 2010

merci pour cette rapide réponse
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
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
Messages postés
15814
Date d'inscription
jeudi 8 août 2002
Statut
Modérateur
Dernière intervention
4 mars 2013
126
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
Messages postés
3
Date d'inscription
jeudi 24 septembre 2009
Statut
Membre
Dernière intervention
1 avril 2010

oui j'ai vu,
c'est pas grave merci, je vais chercher vers les expressions

merci Renfield
Messages postés
140
Date d'inscription
mardi 25 novembre 2003
Statut
Membre
Dernière intervention
1 novembre 2010
6
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.
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
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
Messages postés
140
Date d'inscription
mardi 25 novembre 2003
Statut
Membre
Dernière intervention
1 novembre 2010
6
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 "?:" ?
Messages postés
17288
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
70
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