2013-07-04 27 views
0

我有一個輸入表單,我想檢查一些user_name屬性。例如,如果用戶名只有數字小寫。我使用回調函數,但只給出一個簡單的字符串,如「a」不會返回true ..我真的不明白。我究竟做錯了什麼 ??codeigniter自定義表單驗證不會工作

$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

你究竟在哪裏定義'validate_user_name'函數? –

回答

0

首先,PHP如果pattern比賽給出subject [Reference]

因此,使用=== 1== TRUE代替=== truepreg_match()返回1

其次,/a/模式發生時,回調函數應該返回FALSE,如果沒有,則返回TRUE

+0

謝謝我剛開始使用php,'==='和'=='混淆了我一點,我終於創建了我想要的正則表達式,它像''/^[az][\-\.a-z0 -9] * $ /''它的工作原理!現在:D – kalafun