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 중국어 웹사이트의 기타 관련 기사를 참조하세요!