Можно ли проверять как числа, так и десятичные значения с помощью класса валидации codeigniter?
Потому что мне нужно дать пользователю ввести либо число, либо десятичное значение. Eg: 10 or 1.5 or 30.45
В классе валидации codeigniter это позволяет либо проверять число, либо десятичное число отдельно.
Может кто-нибудь сказать мне, как можно сделать эту проверку в codeigniter?
<?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;
}
}
}
Вы можете попробовать создать свой собственный обратный вызов или использовать правило regex_match, чтобы сделать это следующим образом:
$this->form_validation->set_rules('cost', 'Cost', array('trim','required','min_length[1]','regex_match[/(^\d+|^\d+[.]\d+)+$/]'));
Вы должны использовать массив для установки правил, потому что правило регулярных выражений использует трубу (|).