codeigniter验证数字和小数

时间:2017-08-12 17:23:07

标签: php codeigniter

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

因为我需要让用户输入数字或小数值。 Eg: 10 or 1.5 or 30.45

在codeigniter验证类中,它允许分别验证数字或小数。

有人可以告诉我如何在codeigniter中完成此验证?

2 个答案:

答案 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+)+$/]'));

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