Funtion preg_match

Moritz123

Erfahrenes Mitglied
hallo!

ich möchte gerne eine abfrage durchführen, die herausfinden soll, ob
in ein formularfeld nur zahlen eigegeben wurden. ist dies nicht der fall,so soll eine fehlermeldung ausgegeben werden.
ich habe über die suche eine thema gefunden, dass sich mit preg_match beschäftigt. leider werde ich daraus überhaupt nicht schlau.
wie kann ich erreichen, dass nur zahlen eingeben werden können die 4 stellen haben?
vielen Dank!
 
Also die Länge auf 4 Zeichen begrenzen kannst du von vorne herein schon mal, indem du dein Eingabefeld wie folgt aussehen lässt:
Code:
<input type="text" name="xyz" maxlength="4">
Des Weiteren kannst du nachher mittels PHP die Länge der Eingabe prüfen.
PHP:
if(strlen($_REQUEST['xyz']) == "4") {
 do_this();
 do_that();
}
Die Sache mit dem preg_match muss ich mir nochmal angucken. Ich poste wenn ichs hab.
 
Ok ich habe zwar preg_match noch nicht so ganz verstanden aber dein Problem denke ich können wir jetzt lösen. Also durch die zuvor von mir schon erwähnten mechanismen stellst du zunächst sicher, dass der String maximal 4 Zeichen lang ist und durch die if-Abfrage in PHP, dass er genau 4 Zeichen lang ist. Dann bekommst du mit preg_match sowas hier
PHP:
// Das Inputfeld soll zuvor nummer geheissen haben.
if(strlen($_REQUEST['nummer']) == "4") {
 if(preg_match("/[0-9]{4}/",$_REQUEST['nummer']) {
  echo "Eingabe ist 4 Zeichen lang und enthält nur Zahlen";
  }
 else {
  echo "Eingabe ist 4 Zeichen lang, enthält aber nicht nur Zahlen";
  }
 }
else {
 echo "Eingabe ist nicht 4 Zeichen lang";
}
Das ist zwar sicher nicht die eleganteste Lösung aber sie sollte funktionieren.
 
Das strlen kannst du dir im Prinzip sparen, das ist ja auch im regulären Ausdruck enthalten. Am schönsten wär's wohl so:
PHP:
if (preg_match("/^[0-9]{4}\$/",$_REQUEST['nummer'])) {
     echo "Gültige Eingabe!";
} else {
     echo "Ungültige Eingabe!";
}
 
PHP:
if (strlen((int)$_REQUEST["feld"]) != 4)
  echo "Error!";
else
  echo "Alles OK";
Is aber nicht so elegant, weil strlen den übergebenen Wert ja sowieso wieder in einen String umwandelt.
 
Zurück