0
我想禁止人們在我的輸入中編寫字符「#」,我該如何實現它?如何禁止使用ZF2表格驗證器的字符
我想禁止人們在我的輸入中編寫字符「#」,我該如何實現它?如何禁止使用ZF2表格驗證器的字符
正如@guessimtoolate建議的那樣,因爲如果你想禁止只有尖銳的字符,那麼最好簡單地過濾它。過濾器驗證之前運行,因此您的工作流程是這樣的:
#
過濾器驗證你的領域你想使用的是Zend\Filter\PregReplace
。如果你提供你的過濾器/通過提供商接口校驗,那麼陣列的符號應爲以下(這是未經測試,所以你可以解決它一點點)
'filters' => array(
array('name' => 'Zend\Filter\PregReplace', 'options' => array(
'pattern' => '/#/',
'replacement' => ''
)
)
如何正則表達式驗證有類似'[^#]'(http://framework.zend.com/manual/2.2/en/modules/zend.validator.set.html#regex)的模式?你有什麼嘗試?也許你可以過濾輸入字段而不是驗證它?一些更多的信息將是有用的。 – guessimtoolate
正則表達式是個好主意,但是當我使用這種模式時:[^#]表單永遠不會有效,有或沒有#。 – Siol
在這裏回答http://stackoverflow.com/questions/5704061/php-reverse-preg-match這種模式工作:/^(?:(?!#).)*$/i – Siol