在PHP 中解析未格式化的貨幣值
嘗試將表示為字串的貨幣值(例如「75,25 € 」)解析為對於它們的數字等價物,僅依賴使用parsefloat() 方法可能並不總是足夠。為了解決此限制並確保跨不同區域設定和分隔符號格式的靈活性,需要更複雜的解決方案。
此解決方案利用正規表示式來提取數值,考慮貨幣金額中使用的各種可能的分隔符號和格式。給定輸入字串,首先使用 preg_replace() 刪除不必要的字元。隨後的正規表示式操作會識別並刪除分隔符和千位分隔符,從而產生一個數字字串。
最後,清理後的字串將接受標準的 str_replace() 操作,以在轉換為浮點數之前將小數點分隔符號統一為句點使用(浮動)。這種綜合方法將點和逗號作為小數分隔符號處理,確保無論語言環境如何都能準確解析。
這裡有一個範例來說明該過程:
<?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); }
透過這種方法,您可以自信地解析未格式化的貨幣字串,無論語言和格式約定如何,都可以獲得可靠的數值。
以上是如何在 PHP 中解析未格式化的貨幣值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!