2010-07-29 4 views
1

확인 나는

  • 번호
  • 텍스트
  • 공간 (함수가 더 낫다?)

    'Hello World123 
    i just press enter' 
    

    허용에게 반환 어떻게 어떤 문자열을

    'Hello^<php>World&*124>< 
    i ju*st press enteR' 
    

    이 , 개행 문자 등

어떻게 정규식을 사용합니까? 정규식을 사용해야합니까? 다른 방법이 있습니까?

감사

아담 라마단

+1

"H ello"의 공백은 제거하지만 다른 공백은 제거하지 않는 간단한 정규식을 찾을 수 없습니다. –

+2

'H ello'는 큰 문제가 될 것입니다. – Incognito

+0

ups hahaha 미안하지만 나는 그 부분을 잊었다. : | –

답변

2

이 작업을 수행 할 수 있습니다

function removeBad($str) 
{ 
    return preg_replace("/[^a-zA-Z0-9_ (\n|\r\n)]+/", "", $str); 
} 

당신은 또한 제거하려면이 알파벳, 숫자, 공간, 줄 바꿈

이외의 제거 텍스트에 <php>과 같은 태그가 있으면 다음과 같이 할 수 있습니다.

function removeBad($str) 
{ 
    $str = strip_tags($str); 
    return preg_replace("/[^a-zA-Z0-9_ (\n|\r\n)]+/", "", $str); 
} 

사용법 :

$str = removeBad('Hello^<php>World&*124><'); 
echo $str; 

결과 :

HelloWorld124 

.

$str = removeBad('i ju*st press EnteR'); 
echo $str; 

결과 :

i just press EnteR 
+1

멋지다, 모든 것을 제한하는 것은 어떨까요 (특수 문자 포함)? '/.{$ min, $ max} /'또는 더 좋은 방법이 있습니까? –

+0

@Adam Ramadhan : 정확히 무엇을 의미하는지 조금 더 설명해 주시겠습니까? 'wadwd'을 heres 내 초보자 ($ 입력, $ 분, $의 최대)가 '기능 setMax 도움을 희망 \t { \t \t $ 텍스트 = "/^.{'.$min을 시도합니다. '와 같은 제한 – Sarfraz

+0

, '. $ max.'} $/"; \t 경우 (는 preg_match ($ 텍스트, $ 입력)) 사실 \t { \t 반환, 그렇지 \t} \t \t { \t 반환 거짓; \t} \t}' –

0

정규식 대체 당신을 위해이 작업을 수행 할 수 있습니다. 나는 네가 필요하다고 생각해. 첫 번째 것은 <과> 문자 사이의 모든 것을 제거합니다. 두 번째는 허용 된 문자 세트에없는 문자를 제거합니다. 그것이 가장 안전한 방법입니다.

관련 문제