我有一个输入表单,我想检查一些user_name属性。例如,如果用户名只是小写的数字。我使用回调函数,但只给出一个简单的字符串,如“a”不会返回true ..我真的不明白。我做错了什么?
$this->form_validation->set_rules('user_name','User name','required|callback_validate_user_name');
...
if($this->form_validation->run() !== false){
$data['main_content'] = 'pages/news_page';
$this->load->view('templates/home_body_content', $data);
} else {
echo "Damn!";
}
function validate_user_name($user_name){
if(preg_match('/a/', $user_name) === true){
return true;
}
return false;
}
答案 0 :(得分:0)
首先,如果preg_match()
匹配给定1
[Reference]
pattern
会返回subject
因此,请使用=== 1
或== TRUE
代替=== true
。
其次,回调函数应在FALSE
模式发生时返回/a/
,如果没有则返回TRUE
。