是否可以使用codeigniter验证类验证数字和小数值?
因为我需要让用户输入数字或小数值。 Eg: 10 or 1.5 or 30.45
在codeigniter验证类中,它允许分别验证数字或小数。
有人可以告诉我如何在codeigniter中完成此验证?
答案 0 :(得分:2)
<?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;
}
}
}
答案 1 :(得分:0)
您可以尝试构建自己的回调或使用regex_match规则执行此操作:
$this->form_validation->set_rules('cost', 'Cost', array('trim','required','min_length[1]','regex_match[/(^\d+|^\d+[.]\d+)+$/]'));
您必须使用数组方式设置规则,因为正则表达式规则使用管道(|)。