PHP가 숫자 문자열에서 쉼표 제거
PHP에는 ALL 문자열인 변수 배열이 있습니다.저장된 값 중 일부는 쉼표가 있는 숫자 문자열입니다.
필요한 것:
문자열에서 쉼표를 잘라내는 방법. 숫자 문자열에 대해서만 이 작업을 수행합니다.이것은 보기만큼 간단하지 않다.주된 이유는 다음 사항에 실패하기 때문입니다.
$a = "1,435";
if(is_numeric($a))
$a = str_replace(',', '', $a);
이는 다음 이유로 실패합니다.$a = "1435"
는 숫자입니다.그렇지만$a = "1,435"
는 숫자가 아닙니다.받는 문자열 중에는 쉼표가 있는 일반 문장이 있기 때문에 모든 문자열에 대해 문자열 치환을 실행할 수 없습니다.
반대로 해 주세요.
$a = "1,435";
$b = str_replace( ',', '', $a );
if( is_numeric( $b ) ) {
$a = $b;
}
가장 쉬운 방법은 다음과 같습니다.
$var = intval(preg_replace('/[^\d.]/', '', $var));
또는 플로트가 필요한 경우:
$var = floatval(preg_replace('/[^\d.]/', '', $var));
테스트는 하지 않았지만 아마if(preg_match("/^[0-9,]+$/", $a)) $a = str_replace(...)
고객님이 원하시는 이상적인 솔루션은filter_var()
:
$a = filter_var($a, FILTER_VALIDATE_FLOAT, FILTER_FLAG_ALLOW_THOUSAND);
(현재 FILTER_FLAG_ALLOW_SOUNT 옵션이 없기 때문에 FILTER_VALIDATE_INT 대신 FILTER_VALIDATE_FLOATE_FLOAT를 사용하고 있습니다).
이거 먹어봐. 나 이거 먹혔어.
number_format(1235.369,2,'.','')
number_format을 이렇게 사용하면number_format(1235.369,2)
답변은 1,235.37 입니다.
하지만 아래와 같이 사용한다면
number_format(1235.369,2,'.','')
답은 1235 입니다.37
'1,235.37'의 ''를 삭제합니다.
function cleanData($a) {
if(is_numeric($a)) {
$a = preg_replace('/[^0-9,]/s', '', $a);
}
return $a;
}
단어를 포함하는 문자열 내의 숫자에서 쉼표를 삭제하는 경우 preg_replace_callback을 사용하는 것이 가장 쉬운 방법이라고 생각합니다.
예제:
$str = "Hey hello, I've got 12,500 kudos for you, spend it well"
function cleannr($matches)
{
return str_replace("," , "" , $matches["nrs"]);
}
$str = preg_replace_callback ("/(?P<nrs>[0-9]+,[0-9]+)/" , "cleannr" , $str);
출력:
"안녕하세요, 12500 KUDO를 준비했습니다. 잘 쓰세요."
이 경우 패턴(regex)은 다른 쉼표(문구부호)를 삭제하지 않기 때문에 승인된 답변에 지정된 패턴(regex)과 다릅니다.
사용한다면/[0-9,]+/
대신 여기서/[0-9]+,[0-9]+/
출력은 다음과 같습니다.
"안녕하세요, 잘 쓰시라고 12500쿠도 가져왔어요"
이거 어때:
/**
* This will parse the money string
*
* For example 1, 234, 456.00 will be converted to 123456.00
*
* @return
*/
function parseMoney(string $money) : float
{
$money = preg_replace('/[ ,]+/', '', $money);
return number_format((float) $money, 2, '.', '');
}
예:
parseMoney('-1, 100, 000.01'); //-1100000.01
언급URL : https://stackoverflow.com/questions/9334879/php-remove-commas-from-numeric-strings
'itsource' 카테고리의 다른 글
Tensorflow 디버깅 정보 비활성화 (0) | 2022.09.17 |
---|---|
Github 페이지의 VueJS 앱 공백 페이지 (0) | 2022.09.17 |
mysql에서 해당 달의 첫날을 얻는 방법은 무엇입니까? (0) | 2022.09.17 |
Vue를 사용한 클릭 투 편집 텍스트 필드 (0) | 2022.09.17 |
matplotlib 그림에서 축 텍스트 숨기기 (0) | 2022.09.17 |