[php] 숫자를 제외한 모든 것을 제거하는 PHP 코드

문자열에서 모든 것을 제거하려고하지만 숫자 (0-9)입니다.

나는 이것이 효과가 있다고 생각했다.

echo preg_replace("[^0-9]","",'604-619-5135');

그러나 이것은 “604-619-5135″를 반영합니다. 내가 뭘 놓친거야 ???



답변

이 시도:

preg_replace('/[^0-9]/', '', '604-619-5135');

preg_replace는 일반적으로로 시작하고 끝나는 PCRE를 사용합니다 /.


답변

이것은 미래의 개발자를위한 것이며, 시도해 볼 수도 있습니다. 너무 간단

echo preg_replace('/\D/', '', '604-619-5135');


답변

패턴을 구분 기호로 묶어야합니다. 일반적으로 슬래시 (/)가 사용됩니다. 이 시도:

echo preg_replace("/[^0-9]/","",'604-619-5135');


답변

정규식을 사용하지 않으려는 사람들에게 훨씬 실용적인 방법입니다.

$data = filter_var($data, FILTER_SANITIZE_NUMBER_INT);

참고 : 전화 번호에서도 작동합니다.


답변