Parsen unformatierter Geldwerte in PHP
Beim Versuch, als Zeichenfolgen dargestellte Geldwerte wie „75,25 €“ zu parsen Für ihre numerischen Äquivalente reicht es möglicherweise nicht immer aus, sich nur auf die Methode parsefloat() zu verlassen. Um diese Einschränkung zu beheben und Flexibilität über verschiedene Gebietsschemata und Trennzeichenformate hinweg sicherzustellen, ist eine komplexere Lösung erforderlich.
Diese Lösung nutzt reguläre Ausdrücke, um numerische Werte unter Berücksichtigung verschiedener möglicher Trennzeichen und Formate für Geldbeträge zu extrahieren. Bei gegebener Eingabezeichenfolge werden unnötige Zeichen zunächst mit preg_replace() entfernt. Nachfolgende Regex-Vorgänge identifizieren und entfernen Trennzeichen und Tausendertrennzeichen, was zu einer numerischen Zeichenfolge führt.
Schließlich wird die bereinigte Zeichenfolge einer Standardoperation str_replace() unterzogen, um das Dezimaltrennzeichen als Punkt zu vereinheitlichen, bevor es in eine Gleitkommazahl umgewandelt wird mit (float). Dieser umfassende Ansatz behandelt sowohl Punkt als auch Komma als Dezimaltrennzeichen und gewährleistet so eine genaue Analyse unabhängig vom Gebietsschema.
Hier ist ein Beispiel zur Veranschaulichung des Prozesses:
<?php function getAmount($money) { $cleanString = preg_replace('/([^0-9\.,])/i', '', $money); $onlyNumbersString = preg_replace('/([^0-9])/i', '', $money); $separatorsCountToBeErased = strlen($cleanString) - strlen($onlyNumbersString) - 1; $stringWithCommaOrDot = preg_replace('/([,\.])/', '', $cleanString, $separatorsCountToBeErased); $removedThousandSeparator = preg_replace('/(\.|,)(?=[0-9]{3,}$)/', '', $stringWithCommaOrDot); return (float) str_replace(',', '.', $removedThousandSeparator); }
Mit diesem Ansatz können Sie sicher sein Analysieren Sie unformatierte Geldzeichenfolgen und erhalten Sie unabhängig von Sprach- und Formatierungskonventionen zuverlässige numerische Werte.
Das obige ist der detaillierte Inhalt vonWie analysiert man unformatierte Geldwerte in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!