0

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

1 回答 1

0

首先,如果匹配给定[参考]preg_match() ,则 PHP返回1patternsubject

所以使用=== 1or== TRUE代替=== true.

其次,回调函数应该FALSE/a/模式发生时返回TRUE,否则返回。

于 2013-07-04T17:21:43.753 回答