MAC-Adressen.Prüfung --> Algorithmus-Probleme

  • Themenstarter Themenstarter Phila-Boi
  • Beginndatum Beginndatum
P

Phila-Boi

Hallo Leute,
anbei der Code zu einem JS, das eine Eingabe abgefragt, umgewandelt und neu in das Formular eintragen soll.
Es dient der MAC-Adressen-Prüfung und Umwandlung in ein bestimmtes Schema. Die Adresse darf nur aus einer Länge von 12 Zeichen bestehen. Es darf vorkommen: 1-9, a-f.

Ich erhalte die Ausgabe alert("Das ist keine gueltige MAC-Adresse"), die beiden Testausgaben werden nicht ausgegeben, also finden dort wohl auch keine Abfragen statt. Wer kann mir bitte helfen, den Fehler zu finden?


Code:
<html>
<head>
<title>Test</title>

<script type="text/javascript">
function Mac(objInput)
{
  var eingabe = objInput.value;

  var mac_alt = eingabe.toLowerCase();
  mac_alt = parseInt(mac_alt);
  var i = 0;
  var mac_neu ="";
  var anzahl = 0;  //Anzahl der MAC-Zeichen

  while(i < mac_alt.length)
  {
    if (mac_alt.charAt(i)(isNaN))
    {
      var buchstabe = new Boolean(false);
      
      switch(mac_alt.charAt(i))
      {
        case "a": buchstabe = true; break;
        case "b": buchstabe = true; break;
        case "c": buchstabe = true; break;
        case "d": buchstabe = true; break;
        case "e": buchstabe = true; break;
        case "f": buchstabe = true; break;
      }

      if (buchstabe)
      {
        anzahl++;
        mac_neu =+ mac_alt.charAt(i);
        alert("Buchstabe erkannt");     //Testausgabe
      }
    }

    else
    {
      anzahl++;
      mac_neu =+ mac_alt.charAt(i);
      alert("Zahl erkannt erkannt");  //Testausgabe
    }
    
    i++;
    
  }

  if (anzahl==12)
    document.Testform.Name.value = mac_neu;
  else
    alert("Das ist keine gueltige MAC-Adresse");
}
</script>

</head>

<body>
<form name="Testform" action="">
Name: <input type="text" size="30" name="Name" value=" " OnBlur="Mac(this)">
<input type="submit" name="Absendebutton" value="Absenden">
</form>

</body></html>
 
Wieso prüfst Du die Eingabe nicht mit einem regulären Ausdruck? Ist doch einfacher...
Code:
var strMac = '00:90:F5:07:7F:9B';
var pattern = /^([0-9A-Fa-f]{2}\:){5}[0-9A-Fa-f]{2}$/;
alert( 'Eingabe ist '+ (pattern.test(strMac) ? 'gültig' : 'nicht gültig') );
 
var pattern = /^([0-9A-Fa-f]{2}\:){5}[0-9A-Fa-f]{2}$/ --> schon mehrfach gesehen, aber selbt konstruieren ging bisher schief, leider.

Gibt es das auch für eine Prüfung von nur einem Zeichen (jeweils aktuelle Stelle)?
Problem ist nämlich folgenes: Manchmal werden die MAC-Adressen in anderen Formaten angegeben, diese sollen umgewandelt und nicht übergangen werden.
0123:4567:89af oder 01.23.45.67.89.af ...

Es geht dabei um ein Meldeformular, die ihre MAC von sonstwo kopieren und nicht das Standardformat kennen.
 
ja, ich weiß, falsches format. aber wir können froh sein, wenn unsere nutzer die 12 ziffern und irgendwelche trennzeichen hinbekommen. da ist uns schon fast egal in welchem format.

aber ich hab eben nochmal mit jemandem gesprochen, deine idee leicht umnwadeln in die formate, die uns am häufigsten zugeschickt werden und der rest hat pech, gibt ja ein telefon zum nachfragen.^^
 
ja, ich weiß, falsches format. aber wir können froh sein, wenn unsere nutzer die 12 ziffern und irgendwelche trennzeichen hinbekommen. da ist uns schon fast egal in welchem format.

aber ich hab eben nochmal mit jemandem gesprochen, deine idee leicht umnwadeln in die formate, die uns am häufigsten zugeschickt werden und der rest hat pech, gibt ja ein telefon zum nachfragen.^^
 
Code:
var strMac = '00:90:F5:07:7F:9B';
var pattern = /^([0-9A-Fa-f]{2}\:){5}[0-9A-Fa-f]{2}$/;
alert( 'Eingabe ist '+ (pattern.test(strMac) ? 'gültig' : 'nicht gültig') );

Wie bekomme ich den Code so umformuliert, dass er nach vier und nach acht Zeichen den Punkt prüft?
 

Neue Beiträge

Zurück