Php codeigniter验证数字和小数
是否可以使用codeigniter validations类验证数字和十进制值 因为我需要让用户输入数字或十进制值<代码>例如:10或1.5或30.45 在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中进行此验证吗?
您可以尝试构建自己的回调或使用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年前的答案,在您的帮助下,它现在已被修复。谢谢