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 中国語 Web サイトの他の関連記事を参照してください。