Andreas Korthaus: Zahlenformat umwandeln

Beitrag lesen

Hallo!

Es gibt ja verschiedene Zahlenformate für Preise, so z.B.

in USA 123,456.00 oder 123456.00 oder 123,456 oder 123456
bei uns 123.456,00 oder 123456,00 oder 123.456 oder 123456

Alle diese Formate könnten ja eingegeben werden, aber Programmiersprachen verstehen ja bekanntlich nur ein Format: 123456.00

Ich habe das mal so probiert:

function php_preis($eingegebener_preis){
    if (preg_match("/.[0-9]{1,2}$/",$eingegebener_preis)) {
     return str_replace(",","",$eingegebener_preis);
 }
 else {
     return str_replace(",",".",str_replace(".","",$eingegebener_preis));
 }
}

Das funktioniert meines Erachtens, aber kann ich mich darauf auch verlassen? Was habe ich vieleicht nicht bedacht? Hat es Sinn  mit Hilfe von RegExprs auch Währungsangaben abzufangen, also auch wenn jemand dahinter oder davor noch EUR, €, USD, $ ... eingibt? Oder sollte ich mich azf ibige Funktion beschränken und vielleicht vorher noch Zeichen außer Zahlen und "," und "." suchen, udn sofort eine Fehlermeldung ausgeben?

Das wichtigste ist das keine fehlerhaften Eingaben in die Datenbank gelangen, wie stelle ich das am sinnvollsten sicher?

Viele Grüße
Andreas