2013-08-17 2 views
0

입력 내용에 "#"문자를 쓰지 못하게하고 싶습니다. 어떻게 할 수 있습니까?ZF2 양식 검사기로 문자를 허용하지 않는 방법

+2

어떻게 정규식 유효성 검사기에 대한 (당신이 그것으로 조금 해결 할 수 있도록이 안된입니다) 다음과 같아야/필터를 제공하고 있습니다 '[^ #]'(http://framework.zend.com/manual/2.2/en/modules/zend.validator.set.html#regex)와 같은 패턴을 가진 클래스? 너 뭐 해봤 니? 어쩌면 입력 필드를 검증하는 대신 필터링 할 수 있습니까? 좀 더 많은 정보가 유용 할 것입니다. – guessimtoolate

+0

Regex는 좋은 생각이지만이 패턴을 사용할 때 : [^ #] 양식은 # 또는 #없이 유효하지 않습니다. – Siol

+0

여기에 답하십시오 http://stackoverflow.com/questions/5704061/php-reverse-preg-match this pattern working : /^(?:(?!#).)*$/i – Siol

답변

1

@guessimtoolate가 제안했듯이, 날카로운 문자 만 허용하지 않으려면 단순히 필터링하는 것이 가장 좋습니다. 필터를 확인하기 전에 실행되는 따라서 워크 플로우는 다음과 같이이다 :

  • 당신의 연결 유효성 검사기

을 필터를 사용하여 필드의 유효성을 검사 필드 값이

  • 문자 #
  • 의 모든 발행 수를 제거 받기 당신이 사용하고자하는 것은 Zend\Filter\PregReplace입니다. 경우 당신은 프로 바이더 인터페이스를 통해 검사기는 다음 배열 표기법이

    'filters' => array(
        array('name' => 'Zend\Filter\PregReplace', 'options' => array(
         'pattern'  => '/#/', 
         'replacement' => '' 
        ) 
    )