我对我的codeigniter表单验证有疑问。我尝试验证名称的输入表单,以便在用户使用">?<*&%^$"
之类的符号时生成错误。这是我的代码:
我的规则:
$this->load->library('form_validation');
$this->form_validation->set_rules('full_name', 'Name', 'trim|required|callback_name_check',
array(
'name_check' => '%s should not using symbols'
)
);
这是我的回调函数(我试图从我看到的最后一个例子中修改它,所以我认为问题就在这里)
public function password_check($str)
{
if (preg_match('#[<>?&%$#@]#', $str)) {
return TRUE;
}
return FALSE;
}
我尝试了另一个来自另一个StackOverflow回答的例子来使用/作为分隔符(像这样 - &gt; [/<>?&%$#@/]
),但仍然不起作用。我很感激你的帮助感受:)
答案 0 :(得分:0)
验证应
$this->load->library('form_validation');
$this->form_validation->set_rules('full_name', 'Name', 'trim|required|callback_name_check');
内部回拨功能
public function name_check($str)
{
if (preg_match('#[<>?&%$#@]#', $str)) {
{
return TRUE;
}
else
{
#adding new validation error should be
$this->form_validation->set_message('full_name', '%s should not using symbols'); # input field name should come to first
return FALSE;
}
}
注意:未验证您已发布的REGEX