Я пытаюсь применить некоторые правила валидации к моим данным формы в CodeIgniter.
Ожидаемый разрешенный пример вывода: 22 – какое-то общество, какая-то улица, город. 223399
Что я ввел для проверки валидации: 42-какое-то Общество-3, какая-то улица. arcade @ ## *
Это моя функция, которую я использую для проверки адреса.
function addr_line1($addr_line1) { if (preg_match('/^[a-z0-9 .\-]+$/i',$addr_line1) !== FALSE) return TRUE; $this->form_validation->set_message('addr_line1', 'allow only space,comma,dot,numbers and alphabets.'); return FALSE; }
Теперь я положил всю свою проверку в config / form_validation.php
array( 'field' => 'addr_line1', 'label' => 'Address Line One', 'rules' => 'required|max_length[100]|callback_addr_line1' ),
В конце концов, я не получил никакой проверки. Я не следую правильному процессу? или что должен код регулярного выражения проверять этот тип данных?
меняться от
function addr_line1($addr_line1) { if (preg_match('/^[a-z0-9 .\-]+$/i',$addr_line1) !== FALSE) return TRUE; $this->form_validation->set_message('addr_line1', 'allow only space,comma,dot,numbers and alphabets.'); return FALSE; }
в
function addr_line1($addr_line1) { if (preg_match('/[\'^£$%&*()}{@#~?><>,|=_+¬-]/', $addr_line1)) { $this->form_validation->set_message('addr_line1', 'allow only space,comma,dot,numbers and alphabets.'); }else{ return true; } }
Примечание: – вы можете заменить £$%&*()}{@#~?><>,|=_+¬-
с вашим запрещенным символом
После вашего предложения и помощи я наконец нашел правильную функцию.
function _validAddressCheck($addr_line1) { if (preg_match('/^[0-9a-zA-Z .,-]+$/',$addr_line1)){ return TRUE; } else { $this->form_validation->set_message('_validAddressCheck', 'Only Allowed space, comma, dot, dash, numbers and alphabets.'); return FALSE; } }
Я обнаружил, что некоторые правила, которые мы должны соблюдать, если мы применяем обратный вызов для проверки.
Я создал массив проверки конфиг в приложении / config / form_validation.php
Поместите функцию обратного вызова на контроллер, где я назвал эти проверки.
Найдите эту ссылку для создания регулярного выражения и проверьте это. Ссылка