문자열에서 숫자가 아닌 문자( 마침표 및 쉼표 제외)를 제거합니다(숫자, 쉼표 및 마침표를 제외한 모든 문자 제거).
다음 값이 있는 경우:
$var1 = AR3,373.31
$var2 = 12.322,11T
쉼표와 마침표를 제외하고 숫자가 아닌 문자가 삭제된 데이터 복사본으로 새 변수를 만들고 설정하려면 어떻게 해야 합니까?위의 값은 다음 결과를 반환합니다.
$var1_copy = 3,373.31
$var2_copy = 12.322,11
다음과 같이 preg_replace를 사용하여 숫자가 아닌 모든 문자와 쉼표 및 마침표/풀스톱을 스왑할 수 있습니다.
$testString = '12.322,11T';
echo preg_replace('/[^0-9,.]+/', '', $testString);
패턴은 다음과 같이 나타낼 수도 있습니다./[^\d,.]+/
filter_var에 대한 언급이 없었던 것이 놀랍습니다.왜냐하면 이건 오래된 질문이기 때문입니다.
PHP에는 검사 필터를 사용하여 이를 수행하는 기본 제공 방법이 있습니다.특히 이 상황에서 사용하는 것은FILTER_SANITIZE_NUMBER_FLOAT
와 함께FILTER_FLAG_ALLOW_FRACTION | FILTER_FLAG_ALLOW_THOUSAND
깃발. 이렇게.
$numeric_filtered = filter_var("AR3,373.31", FILTER_SANITIZE_NUMBER_FLOAT,
FILTER_FLAG_ALLOW_FRACTION | FILTER_FLAG_ALLOW_THOUSAND);
echo $numeric_filtered; // Will print "3,373.31"
또한 PHP에 내장되어 있기 때문에 PHP의 현재 라이브러리에서 regex를 사용하는 것보다 약간 빠릅니다(단, 문자 그대로 나노초 단위).
숫자가 아닌 모든 문자를 완전히 삭제하는 가장 간단한 방법:
echo preg_replace('/\D/', '', $string);
\D
"십진수가 아닌 임의의 문자"를 나타냅니다.
http://php.net/manual/en/regexp.reference.escape.php
사용할 수 있습니다.filter_var
숫자, 점 및 쉼표를 제외한 모든 잘못된 문자를 제거합니다.
- 그
FILTER_SANITIZE_NUMBER_FLOAT
필터는 문자열에서 모든 비문자 삭제에 사용됩니다. FILTER_FLAG_ALLOW_FRACTION
fraction separator를 허용하고 있습니다." . "
- 의 목적
FILTER_FLAG_ALLOW_THOUSAND
문자열에서 콤마를 가져옵니다.
코드
$var1 = '12.322,11T';
echo filter_var($var1, FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION | FILTER_FLAG_ALLOW_THOUSAND);
산출량
12.322,11
filter_var() 및 Sanitize 필터에 대한 자세한 내용을 보려면
글자가 항상 처음이나 끝에 있는 경우 트리밍만 사용하면 됩니다. 정규식은 필요 없습니다.
$string = trim($string, "a..zA..Z"); // this also take care of lowercase
"AR3,373.31" --> "3,373.31"
"12.322,11T" --> "12.322,11"
"12.322,11" --> "12.322,11"
언급URL : https://stackoverflow.com/questions/4949279/remove-non-numeric-characters-excluding-periods-and-commas-from-a-string-i-e
'programing' 카테고리의 다른 글
fs: 부모 폴더를 찾으려면 어떻게 해야 하나요? (0) | 2022.10.02 |
---|---|
JUnit4 fail()은 여기에 있는데 pass()는 어디에 있나요? (0) | 2022.10.02 |
File 객체를 사용하여 파일 디렉토리를 가져오려면 어떻게 해야 합니까? (0) | 2022.10.02 |
로컬 컴퓨터의 MySQL 서비스가 시작된 후 중지되었습니다. (0) | 2022.10.02 |
MariaDB 알 수 없는 구문 오류입니다.간단한 테이블 만들기 (0) | 2022.10.02 |