2017-08-12 95 views
0

是否可以使用codeigniter验证类验证数字和小数值?codeigniter验证数字和小数

因为我需要给用户输入一个数字或十进制值。 Eg: 10 or 1.5 or 30.45

在codeigniter验证类中,它允许单独验证一个数字或十进制数。

有人能告诉我如何在codeigniter中进行验证吗?

回答

1
<?php 

class Form extends CI_Controller 
{ 
    public function index() 
    { 
     $this->load->helper(array('form', 'url')); 

     $this->load->library('form_validation'); 

     $this->form_validation->set_rules('weight', 'Weight', 'required|trim|callback_weight_check'); 

     if ($this->form_validation->run() == FALSE) { 
      $this->load->view('myform'); 
     } else { 
      $this->load->view('formsuccess'); 
     } 
    } 

    public function weight_check($val) 
    { 
     if (!is_int($val) || !is_float($val)) { 
      $this->form_validation->set_message('weight_check', 'The {field} field must be number or decimal.'); 
      return FALSE; 
     } else { 
      return TRUE; 
     } 
    } 

} 
0

您可以尝试建立自己的回调或使用regex_match规则来做到这一点是这样的:

$this->form_validation->set_rules('cost', 'Cost', array('trim','required','min_length[1]','regex_match[/(^\d+|^\d+[.]\d+)+$/]')); 

你必须使用数组的方式来设置的规则,因为正则表达式规则使用管道(|)。