Preis Angabe auf richtigkeit Prüfen

eViLaSh

Erfahrenes Mitglied
Hi,

ich versuche gerade irgendwie einen angegebenen Preis auf sein richtiges Format zu Prüfen...

Das Format soll so aussehen: XX,XX also z.B. 12,50

Man soll aber die Möglichkeit haben, nur die ersten beiden stellen, ohne das Komma einzugeben, dabei soll dann automatisch das ",00" angefügt werden...

was man nicht eingeben darf ist z.B. 12.00 oder 12,000 oder 12,0,1 oder sowas...

bisher habe ich es nur geschaft das Komma überprüfen zu lassen :(

das ganze sieht bisher so aus:
Code:
    if (!preg_match ("/^([0-9-,]+)$/", $art_preis)) {


        $retErrors[] ="Preis: Ihre Eingabe entspricht nicht der richtigen Form, z.B. 12,00";
	    $error = 1;
     }

irgendwie check ich die preg_match funktion nicht, diverse php-befehlsreferenzen haben mich auch nicht weiter gebracht....:(
 
hm... ich hab mir das mal gezogen, aber ganz schlau werd ich aus dem programm nicht wirklich ...


auch die pattern die du mir gegeben hast scheint nicht wirklich zu funktionieren, oder mach ich da irgendwas falsch ?!

PHP:
preg_match ("/^[0,9]+(,[0-9]{2,2})?$/", $wert)
 
mh...ne funktioniert auch nicht wirklich... jetzt gibt er mir immer TRUE

verflixt und zugenäht...:confused:
 
ARG .. True weil vielleicht der Reguläre Ausdruck passt, also
der Preis richtig ist? Liest eigentlich IRGENDJEMAND auch
mal die Rückgabewerte auf [phpf]preg_match[/phpf]
 
ja er gibt mir auch true aus, wenn ich als wert z.B. 12,0000 oder 12.00 oder so angebe...und das soll ja nicht so sein...
 
PHP:
$preis = "12,990";
# check ob format stimmt .... und anschließend überflüssige Nachkommastellen löschen
$explo = explode(",", $preis); # anhand des , explodieren *g*
if(is_array($explo)) if(strlen($explo['1']) > "2") substr($preis, 0, strpos("," $preis)+2);
# wenn ein , drin ist müsste dabei ein array entstehen was mit is_array geprüft wird
# dann werden die Stellen nach dem Komma gezählt und für den Fall das es mehr als 2 sind gekürzt
Hoffentlich ergibt das Sinn :)

Edit: Du kannst deine Beiträge selbst löschen indem du "editieren" klickst und dann oben links ein Häkchen bei "Löschen?" machst und dann rechts "Löschen" klickst.
 
Zuletzt bearbeitet:
ah, gut zu wissen das mit dem löschen ;)

also deine version ist zwar nich schlecht, brachte mich aber auch ned unbedingt weiter...

hab jetzt noch ewig probiert und habs endlich geschaft...

der ausdruck muss so aussehen:

PHP:
preg_match ("/^([0-9]+,+([0-9]{2}))$/", $art_preis)

danke nochmal an alle ;)
 
Zurück