PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [JS] Regulärer Ausdruck zum Überprüfen von MAC/IP Adressen



Axion
13-09-2004, 15:22
Hallo zusammen,

ich habe ein Formular in dem IP und MAC Adressen eingeben werden. Ich möchte jetzt mit einem Regulären Ausdruck überprüfen ob die eingeben Adressen gültig sind. Meine ersten versuche sehen so aus:



var Suche = /^([a-f0-9]{2}(:)){5}[a-f0-9]{2}/i;


Das Problem bei diesem Ausdruck ist, das ich es noch nicht hin bekommen habe die max. Anzahl von Zeichen die enthalten sind festzulegen bzw zu überprüfen.

MAC: FF:FF:FF:FF:FF:FF (17 Zeichen)

Mit dem oben aufgeführten Ausdruck ist auch diese

MAC: FF:FF:FF:FF:FF:FF:01:02 (23 Zeichen)

gültig.

Kann mir jemand einen Tipp geben wie ich die max. Länge des String in den Ausdruck überprüfe ohne das in einer seperatien abfrage zu erledigen??

Pingu
13-09-2004, 16:59
Hi,

ich habe es jetzt nicht ausprobiert. Aber ich glaube Du hast vergessen mit anzugeben, daß das der ganze String bis zum Stringende ist. Es muß also richtig lauten:


var Suche = /^([a-f0-9]{2}(:)){5}[a-f0-9]{2}$/i;


Denn mit Deiner Version müßte auch folgendes ein richtiges Ergebnis liefern:

MAC: FF:FF:FF:FF:FF:FFdasistjetztnureinVersuch

Denn Du hast ja nur gesagt, daß der String genau so anfangen muß aber eben nicht enden. Das wird dem '$' gesagt.

Pingu

Axion
13-09-2004, 17:10
@Pingu
danke für die antwort
:)

jetzt funktioniert es wunderbar

für die überprüfung der MAC


/^([a-f0-9]{2}(:)){5}[a-f0-9]{2}$/i;


für die überprüfung der IP


/^((25[0-5]{1}|2[0-4]{1}[0-9]{1}|1{0,1}[0-9]{0,1}[0-9]{1})\.{1}){3}(25[0-5]{1}|2[0-4]{1}[0-9]{1}|1{0,1}[0-9]{0,1}[0-9]{1}){1}$/

Pingu
14-09-2004, 07:51
Hi,

eine '{1}' muß Du nicht angeben. Damit läßt sich folgendes verkürzen und wird übersichtlicher:


/^((25[0-5]|2[0-4][0-9]|1?[0-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|1?[0-9]?[0-9])$/


Nur mal so als Tip.

Pingu