hi,
Da ich immer so meine Probleme mit regulären Ausdrücken habe habe ich bisher zwei Konstrukte, von denen einer mich nicht wirklich stolz macht, aber vielleicht kann das einer von euch ganz schnell richtig stellen.
Vielleicht hilft dir dieser Link, deine Kenntnisse zu Regexen zu erweitern: http://tut.php-quake.net/de/regex.html
Zum einen muss ich in einem Feld eine ganze Zahl prüfen [...] Das funktioniert eigentlich prima (oder falls da noch einer was verbessern will...)
if(!preg_match("/^\d{3}$/", $_POST["height"])) {
//...eingabefehler...
}
Meine andere Abfrage für eine reelle Zahl funzt nicht wirklich, es darf also nur "123", "123.45" oder "123,45" eingegeben werden. Wie kann ich noch die Zahlenmengen um das Komma begrenzen, also vielleicht maximal 3 Stellen vor und maximal 2 Stellen nach dem Komma? [...]
if(!preg_match("/^\d{1,3}[\.,]\d{1,2}$/", $_POST["height"])) {
//...eingabefehler...
}
Hier wird natürlich noch nicht die Eingabe des "," erlaubt und auch die Vor-/Nachkommastellen nicht richtig gesetzt, vielleicht kann das einer schnelle und besser als ich, ich wäre euch mal wieder dankbar.
Ich hoffe dir gefällt die oben genannte Methode. Ich habe auch eine andere Funktion genutzt, da du für solch einfache Regexe keine POSIX-Erweiterung benötigst und auch die Groß-/Kleinschreibung nicht ignoriert werden muss, da es sich ja eh nur um Zahlen handelt. Außerdem habe ich dir mit ^ davor und $ danach definiert, dass davor und danach keine anderen Zeichen stehen dürfen.
lg JeSchnell