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

JavaScript Discussion :

regex javascript adresse mac


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 6
    Points : 8
    Points
    8
    Par défaut regex javascript adresse mac
    Bonjour à tous,
    Je suis en train de faire un formulaire pour les utilisateurs d'un réseau local afin de leur administrer une adresse ip via un serveur dhcp. Pour cela, il me faut donc l'adresse mac de la machine. Mon formulaire est ok et mes données sont envoyées à la bdd.
    J'ai déjà fait toutes mes autres regex pour la vérification du formulaire avant l'envoie. Seul problème: l'adresse mac. Quelque soit les caractères que je rentre il m'affiche l'alert.
    Sachant que je récupère mon adresse mac dans mon javaScript sous cette forme: AAAAAAAAAAAA sans aucun espace ou deux points. Merci de me venir en aide.
    Voici mes codes:

    HTML
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <label><input type="checkbox" id="wifi" name="type[]" value="1" onclick="Change()"/>Wifi</label>
    <div style="display:none;" id="divMac1">
    	<h5 class="left">Adresse Mac:</h5>
    	<input type="text" value="" id="mac1wifi" name="mac1wifi" class="left" maxlength="2" onKeyup="autotab(this, document.internet.mac2wifi)" /><h6 class="left">:</h6>
    	<input type="text" value="" id="mac2wifi" name="mac2wifi" class="left" maxlength="2" onKeyup="autotab(this, document.internet.mac3wifi)" /><h6 class="left">:</h6>
    	<input type="text" value="" id="mac3wifi" name="mac3wifi" class="left" maxlength="2" onKeyup="autotab(this, document.internet.mac4wifi)" /><h6 class="left">:</h6>
    	<input type="text" value="" id="mac4wifi" name="mac4wifi" class="left" maxlength="2" onKeyup="autotab(this, document.internet.mac5wifi)" /><h6 class="left">:</h6>
    	<input type="text" value="" id="mac5wifi" name="mac5wifi" class="left" maxlength="2" onKeyup="autotab(this, document.internet.mac6wifi)" /><h6 class="left">:</h6>
    	<input type="text" value="" id="mac6wifi" name="mac6wifi" class="left" maxlength="2"/>
    	<div class="clear"></div>
    </div>



    Javascript
    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
     //vérification des adresses mac
    var regexMac = new RegExp("[0-9a-fA-F]{12}$");
    // adresse mac connexion Wifi
    if ((document.getElementById('wifi').checked)){	
    	var mac1=document.getElementById('mac1wifi').value;
    	var mac2=document.getElementById('mac2wifi').value;
    	var mac3=document.getElementById('mac3wifi').value;
    	var mac4=document.getElementById('mac4wifi').value;
    	var mac5=document.getElementById('mac5wifi').value;
    	var mac6=document.getElementById('mac6wifi').value;
    	var mac= mac1+mac2+mac3+mac4+mac5+mac6;
    	if (!regexMac.test(mac)) {
    		alert("L'adresse mac n'est pas valide");
    		document.getElementById('mac1wifi').focus(); // on met le focus
    		document.getElementById('mac1wifi').select(); // on sélectionne le text pour faciliter la nouvelle saisie
    		return false;
    	}
    	// si la valeur est nulle
    	else if (mac==''){
    		alert("Veuillez saisir une adresse mac pour la connexion Wifi")
    		document.getElementById('mac1wifi').focus(); // on met le focus
    	}
    }

  2. #2
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 6
    Points : 8
    Points
    8
    Par défaut
    Autant pour moi, une autre fonction empêchait celle-ci de fonctionner. Je laisse mon code au cas où ça intéresserait quelqu'un.
    C'est quand on demande de l'aide que la solution nous vient.
    Merci quand même.

  3. #3
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Ta pattern n'en est pas moins inexacte pour autant car elle n'est pas ancrée au début de la chaîne, donc la méthode RegExp.prototype.test() renverra true pour par exemple la chaîne (8B )<###)ABC123DEF456 car elle finit bien par 12 caractères hexadécimaux.

    Pour pallier au problème tu dois ajouter l'ancre de début de chaîne ^:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var regexMac = new RegExp("^[0-9a-fA-F]{12}$");
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 31
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2015
    Messages : 6
    Points : 8
    Points
    8
    Par défaut
    Exact, je n'avais pas fait attention. Merci pour tes conseils.
    À+

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

Discussions similaires

  1. Obtenir l'adresse mac de sa carte reseau
    Par kivoch dans le forum C++Builder
    Réponses: 4
    Dernier message: 19/11/2009, 18h30
  2. [RegEx] Regex d'une adresse MAC
    Par Dud225 dans le forum Langage
    Réponses: 2
    Dernier message: 03/07/2007, 09h51
  3. Réponses: 5
    Dernier message: 25/03/2003, 17h27
  4. Comment récupérer une adresse MAC ?
    Par psau dans le forum Développement
    Réponses: 7
    Dernier message: 19/07/2002, 17h26

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