preg_match - oder Funktion?

BenschM@ster

Mitglied
Servus allerseits,
hab mal wieder eine kleine Frage.
Diesmal hoffentlich nicht ganz so kompliziert ;)

Und zwar geht es darum zu checken, ob in einem Input Feld ein gültiger Geldbetrag eingegeben wurde.
Erlaubt sein soll:
- 30 (Zahlen ohne Komma)
- 30,10 (Zahlen mit genau 2 Nachkommastellen)
- 0,30 (Zahlen mit genau 1 Null vor dem Komma)
Aber nicht erlaubt sein soll:
030,30 (eine Null vor der eigentlichen Zahl).

Bis auf den letzten Punkt habe ich alles hinbekommen:
PHP:
preg_match("/^[1-9]{1}+[0-9]*+([,.]{1}+[0-9]{2}){0,1}$/",$betrag)

läuft traumhaft. Wie bekomme ich es hin, dass der erste Teil praktisch ein "oder" bekommt und dann ein [0]{1}? Oder muss ich die komplette preg_match Funktion als oder setzen?

Gruß,
Ben
 
Hey super, vielen Dank!
Aber wie funktioniert der letzte Teil, dass es sowohl möglich ist die Nachkommastellen wegzulassen, als auch mitzunehmen? Mit Hilfe des "?"? Was genau stellt das "?" dar?

Also vielen Dank :)
Gruß,
Benjamin
 
Das Fragezeichen hat dieselbe Bedeutung wie der Quantor {0,1}. Die zusätzlichen Klammern sind allerdings nicht alle nötig.
Code:
^(?:0|[1-9][0-9]*)(?:[,.][0-9]{2})?$
 
Zurück