PERL ---» à la input überprüfung mit / \W\D /
Thomas Haxmer
Hi!
Ich habe eine if-Anweisung in einem PERL-Skript geschrieben in der
überprüft werden soll ob außer a-z oder A-Z bzw. 0-9 noch andere
Zeichen eingegeben worde sind. Sollte dies der Fall sein so
gibt die Anweisung einen Fehlermeldung aus. Andernfalls soll mit
der arbeit fortgefahren werden.
Ich habe nun solch eine Abfrage geschrieben, aber die funzt aus einem
mir unerklärlichen Grund nicht. Systax ist laut PERL 5.003_0X ok.
Kann mir bitte wer helfen?
Der Source-Code:
######## Hier im Prog. drin #########
######## Beginn if-Anweisung #########
if ($FORM{'textfeld'} =~ / \W \D /) {
print "Content-type: text/html\n\n";
print "Sie haben ein ungültiges Passwort angegeben.\n Bitte gehen Sie <a href="javascript:back()">zurück</a> und geben Sie eine gültige ein!";
exit;
}
######## ENDE der Anweisung #########
######## Programm geht #########
Vielden Dank schon im Voraus für die HILFE!
Mfg Thomas!
Hi,
if ($FORM{'textfeld'} =~ / \W \D /) {
hier wird geprüft, ob folgende Zeichenkette vorkommt:
Leerzeichen, nicht-Wortzeichen, Leerzeichen, nicht-Ziffer, Leerzeichen.
Da \w bereits Ziffern beachtet (bzw. \W eben nicht), brauchst Du kein \D. Korrekt lautet es also so:
if ($FORM{'textfeld'} =~ /\W/) {
Ganz einfach!
Cheatah
Hi,
if ($FORM{'textfeld'} =~ / \W \D /) {
hier wird geprüft, ob folgende Zeichenkette vorkommt:
Leerzeichen, nicht-Wortzeichen, Leerzeichen, nicht-Ziffer, Leerzeichen.Da \w bereits Ziffern beachtet (bzw. \W eben nicht), brauchst Du kein \D. Korrekt lautet es also so:
if ($FORM{'textfeld'} =~ /\W/) {
Ganz einfach!
Cheatah
Hi!
Dankeschön!
hi!
if ($FORM{'textfeld'} =~ / \W \D /) {
Das Problem ist zwar schon behoben, aber trotzdem: du hättest wenn schon die beiden als Alternativen angeben müssen, also entweder in [] oder durch | getrennt, damit es funktioniert hätte.
bye, Frank!