Geldbeträge validieren

brainsucker

Erfahrenes Mitglied
Hallo zusammen,

zunächst mal allen frohe Weihnachten!!

Und nun doch schon zu meiner Frage:

Ich habe ein Formular in dem der benutzer in ein textfeld einen Euro-Betrag eingeben kann. Natürlich möchte ich dann diese Eingabe validieren. Das Format müsste so aussehen: EURO.CENT (Beispiel für gültige Werte: 100.50 // 51.21 // 10.00 // 40)
(Beispiel für ungültige eingaben: 100,10 // 100.100 // abc // 1.000,00)

Wie validiere ich das am Besten?

Wenn nur ein Eurobetrag eingegeben wird, also z.B. 40 dann könnte ich ja mit ctype_digit das prüfen und einfach ein ".00" anhängen.

Die Datenbank in der das gespeichert wird ist vom Typ double(100,2)


Hoffe es kann mir jemand helfen

Nochmals weihnachtliche Grüße

brainsucker
 
So z.B:
PHP:
 $euro = 22.21;
 
 if(preg_match('~^[0-9]+(?:\.[0-9]{1,2})?$~', $euro))
 	echo "Ja!";
 else
 	echo "Ne!";
 
Du prüfst ja letztlich eigentlich nur das Format und änderst es dann...
Hab dafür aber auch grad keine Konkrete Idee... Ich schätze du wirst dazu mehrere Abfragen benutzen, um auf jedes mögliche Format zu reagieren...
Grober Gedanken gang sähe so aus:

if ( , im Wert)
dann entferne ,
und füge . vor der 2t letzten Null ein
elseif( kein . im Wert)
füge .00 am Ende des Wertes ein
elseif( Buchstaben im Wert)
gebe Fehler aus


So Pi mal Daumen gedacht...
Dabei fällt mir auf, dass man ja auch beachten muss, ob 40 nun als 40.00€ gewertet wird oder als 0.40€...
Aber das mit dem Punkt kannste wohl am ehesten mit JS prüfen, bevor das abgeschickt wird...
 
Zurück