gudn tach Torben!
Mein Regulären Ausdruck hierfür lautet:
reg = /[a-z]{2,}[@domain.de]$/;
fast richtig. die square brackets (eckige klammern) werden allerdings zum definieren von zeichenklassen verwendet, lass sie also bei zeichenketten einfach weg. ach ja, und der punkt muss dann noch maskiert werden.
Zwei Kleinbuchstaben, mindestens zweimal vertreten, gefolgt von der Zeichenfolge "@domain.de" am Ende
entsprechend dem "am ende" ($) solltest du auch ein "am anfang" (^) definieren, z.b. so:
reg = /[1]{2,}@domain.de$/;
Wenn der Eingabewert (beim Verlassen des Eingabefeldes) NICHT dem Regulären Ausdruck entspricht, wird das Eingabefeld geleert.
Den oben definierten Regulären Ausdruck müßte ich also noch durch ein ^ irgendwie "umdrehen".
nein, brauchst du nicht, denn
Alternativ die if-Abfrage ändern in if(!reg.test(wert))
eben. wozu willst du dann noch die negation im regulaeren ausdruck?
Aber mich interessiert primär der andere - weil unbekannte - Weg!
ah, ok. sowas kannst du afaik nicht direkt bewirken; hoechtens indirekt ueber trickserei, aber das ist unnoetig, da es ja logische operatoren gibt oder auch else-zweige.
Und den Regulären Ausdruck richtig zu "klammern", um um ihn umzudrehen, habe ich leider auch nicht hingekriegt. Mit "umdrehen" meine ich z.B. aus [a-z] ein [^a-z] zu machen.
das ist auch gar nicht einfach und erfordert wieder unnoetige trickserei.
dein code koennte, leicht abgewandelt, folgendermassen ausshen:
function validierung (eingabe){
reg = /^[a-z]{2,}@domain\.de$/;
wert = eingabe.value;
if(!reg.test(wert))
eingabe.value = "";
}
}
und sollte funzen, denke ich (nicht ausprobiert).
zum thema: http://de.selfhtml.org/javascript/objekte/regexp.htm
prost
seth
a-z ↩︎