Menghuraikan Rentetan Mata Wang dalam PHP
Apabila menghuraikan rentetan mata wang dalam PHP, adalah sukar untuk mengendalikan pemisah perpuluhan yang berbeza-beza bergantung pada tempat semasa . Semasa menggunakan str_replace() untuk menukar koma kepada titik boleh berfungsi untuk beberapa kes, ia bergantung pada andaian bahawa pemisah perpuluhan sentiasa titik.
Penyelesaian yang Lebih Teguh
Untuk menangani had ini dan memenuhi berbilang tempat, penyelesaian yang lebih kompleks tetapi serba boleh ialah menggunakan ungkapan biasa (regex). Begini cara untuk melakukannya:
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); }
Penjelasan
Kaveat
Atas ialah kandungan terperinci Bagaimana Menghuraikan Rentetan Mata Wang dalam PHP dengan Berbilang Tempatan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!