Regulärer Ausdruck für Kommazahl******

filament

Erfahrenes Mitglied
Hallo liebe Community,

ich will mit preg_match ein Formular überprüfen auf Kommazahlen. Dabei soll die Zahl vor dem Punkt beliebig viele Stellen haben können, dann MUSS ein Punkt kommen und danach darf dann wieder nur eine Zahl kommen. (Diese muss zwischen 00 und 99 liegen)

Kurz gesagt es sollen Euro-Werte übermittelt werden. Wie schaffe ich das nur Zahlen verwendet werden dürfen, außer diesem einen Punkt der den Eurobetrag vom Centbetrag trennt?

Für mich sind diese regulären Ausdrücke einfach ein Mysterium für sich, ich glaub ich werde die nie verstehen. Ich hab zwar gelesen wie man nur Zahlen und Punkte verwenden kann. Aber dann könnte ja auch eingegeben werden: 34344.3434.3434.34343.45 oder IPs oder so. Das hilft mir nicht weiter.

Danke im Voraus ;)
 
Hi,

mit folgendem Ausdruck solltest du schonmal weiter kommen:

Code:
^[0-9]+\.[0-9]{2}$

Kurz in Worten: Stringanfang (^), dann mind. eine Ziffer, dann ein Punkt, dann zwei Ziffern, Stringende ($).
 
Hi.

Code:
^\d+[.]\d{2}$
\edit: Ups, viel zu langsam... Die beiden reg. Ausdrücke bedeuten übrigens genau dasselbe.

Gruß
 
Zuletzt bearbeitet:
Hmm wenn ich wie folgt das Script nutze:

PHP:
if (preg_match("^[0-9]+\.[0-9]{2}$", $_POST['beitrag']))

Sagt er es würde ein delimiter fehlen? Warum das denn?
 
PHP:
$pattern = "/^[0-9]+\.[0-9]{2}$/";
$var = 2.54;

if(preg_match($pattern, $var)) echo 'true';
else echo 'false';

Gibt bei mir Erwartungsgemäß ein true. Da machst du wohl irgendwas anderes falsch.
 
Hallo, es war mein Fehler. Ich hatte mich im Übermittlungsformular bei der Variable vertippt. Danke trotzdem nochmal. Damit Thema erledigt ;)
 
Zurück