codeigniter自定义表单验证不会工作

时间:2013-07-04 17:05:40

标签: regex forms codeigniter validation

我有一个输入表单,我想检查一些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;
}

1 个答案:

答案 0 :(得分:0)

首先,如果preg_match()匹配给定1 [Reference]

,则PHP pattern会返回subject

因此,请使用=== 1== TRUE代替=== true

其次,回调函数应在FALSE模式发生时返回/a/,如果没有则返回TRUE