Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php codeigniter验证数字和小数_Php_Codeigniter - Fatal编程技术网

Php codeigniter验证数字和小数

Php codeigniter验证数字和小数,php,codeigniter,Php,Codeigniter,是否可以使用codeigniter validations类验证数字和十进制值 因为我需要让用户输入数字或十进制值例如:10或1.5或30.45 在codeigniter验证类中,它允许分别验证数字或小数 有人能告诉我如何在codeigniter中进行此验证吗?您可以尝试构建自己的回调或使用regex\u匹配规则这样做: <?php class Form extends CI_Controller { public function index() { $

是否可以使用codeigniter validations类验证数字和十进制值

因为我需要让用户输入数字或十进制值<代码>例如:10或1.5或30.45

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


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

您可以尝试构建自己的回调或使用regex\u匹配规则这样做:

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

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

您的条件是错误的。应该是!is_int($val)&!是浮点数($val)。如果你不改变它,所有的浮动都会改变fail@MdAshrafulIslam现在修好了。谢谢。@Tpjoka您的情况仍然不好。因为我又查过了。对不起,我上一个条件也错了。因为两者都有!是int和!参数为“10.00”时is_float失败。当参数为数字时,is_float起作用。但在本例中,参数是一个字符串。它在大多数情况下都失败了。使用!过滤器变量($val,过滤器验证浮点数)istead。对于integer也不需要这样做,因为它会自动验证整数。否。使用值“10.00”检查失败。因为它是字符串。问题要求int或float条件。然而,这是3年前的答案,在您的帮助下,它现在已被修复。谢谢