在PHP 解析貨幣字串
在PHP 解析貨幣字串時,依照目前區域設定處理不同的小數分隔符可能具有挑戰性。雖然使用 str_replace() 將逗號轉換為點在某些情況下可行,但它依賴於小數點分隔符號始終為點的假設。
更強大的解決方案
為了解決這個限制並迎合多種語言環境,一個更複雜但通用的解決方案是使用正則表達式(regex) 。操作方法如下:
public 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中文網其他相關文章!