2014-01-22 2 views
6

어느 누구도 밑줄과 마침표를 제외한 문자열의 모든 특수 문자를 어떻게 바꿀 수 있습니까? 또한 PHP 설명서를 읽는 패턴을 바꿀 수있는 방법을 이해하려고 노력하고 있습니다. 나 같은 초보자도 초보자도 쉽게 만들 수있는 다른 문서 나 튜토리얼을 가지고 있으므로이 같은 다른 질문을 게시 할 필요가 없으며 사람들이이 함수를 사용하려고 할 때마다 문제가 발생하지 않습니다.PHP에서 밑줄과 마침표를 제외한 모든 특수 문자를 대체하는 방법은 무엇입니까?

preg_replace('/[^a-zA-Z0-9]/', '', $string); 

이 내가이 모든 특수 문자를 대체해야하지만 난 _.을 제외시켰다 할 것입니다.

+1

[정규 표현식 읽기!] (http://www.regular-expressions.info/) – jurgemaister

답변

13

문자의 부정 세트 ([^...])에 _.을 넣어 :

$string = preg_replace('/[^a-zA-Z0-9_.]/', '', $string); 

당신은 $string = ..preg_replace 때문에 반환 대체 문자열을 생략해서는 안된다. 문자열을 그대로 유지합니다.

+0

고맙습니다. – maniteja

+2

@maniteja, FYI 위 패턴은/[^ \ w로 바꿀 수 있습니다. ] /''\ w'는 임의의 단어 문자 (알파벳, 숫자,'_' 포함)와 일치하기 때문입니다. – falsetru

+0

여기에 '/'문자를 어떻게 허용 하시겠습니까? –

1

당신은 ... (입력에 대한 화이트리스트를 설정)

을 청정기와 같은 일부 PHP 필터 위젯을 사용할 수 있지만 그럼에도 불구하고, 우리는 당신이 정규식 내용을 제안하고 싶습니다!

관련 문제