[php] 문자열에서 영숫자 문자 만 반환하는 기능?

입력 문자열을 가져와 영숫자 만 남기고 모든 특수 문자를 제거하여 위생 화 된 버전을 반환하는 PHP 함수를 찾고 있습니다.

동일한 작업을 수행하지만 알파벳 문자 AZ 만 반환하는 두 번째 함수가 필요합니다.

많은 도움을 주셔서 감사합니다.



답변

경고 : 영어는 AZ에만 국한되지 않습니다.

az, AZ 및 0-9를 제외한 모든 항목을 제거하려면 다음 을 시도하십시오 .

$result = preg_replace("/[^a-zA-Z0-9]+/", "", $s);

영숫자 정의에 외국어 문자와 쓸모없는 스크립트가 포함 된 경우 유니 코드 문자 클래스를 사용해야합니다.

AZ 만 남겨 두려면 다음 을 시도하십시오 .

$result = preg_replace("/[^A-Z]+/", "", $s);

경고의 이유는 이력서와 같은 단어 é에 이것과 일치하지 않는 문자 가 포함되어 있기 때문입니다. 특정 문자 목록과 일치 시키려면 해당 문자를 포함하도록 정규식을 조정하십시오. 모든 문자를 일치 시키려면 주석에 언급 된 적절한 문자 클래스를 사용하십시오.


답변

대신 .NET 과 함께 함수를 사용하여 preg_replace항상 PHP의 필터 함수 를 사용할 수 있습니다 .filter_var()FILTER_SANITIZE_STRING


답변

  1. 숫자 [ 0-9 ] 및 일반적인 알파벳 [ \ pL ]에 대해 Santize :
$string = preg_replace("/[^0-9\pL]+/", "", $string)
  1. 알파벳 A에서 Z (대소 문자 구분 안 함) [ a-zA-Z ]에 대해 특별히 Santize :
$string = preg_replace("/[^a-zA-Z]+/", "", $string)


답변