Справка по правилам проверки Codeigniter - PullRequest
2 голосов
/ 22 июля 2010

Я хочу проверить поля для телефонов и мобильных телефонов в моем приложении CI.Я установил правила проверки как целочисленные, но пользователь не может вводить значения, разделенные "-".Если я использую текстовый тип, пользователь может также вводить алфавиты ..... как мне решить эту проблему .... я хочу, чтобы пользователь вводил значения "-" и "+" в полях, а не любые другие тексты

Код:

$this->form_validation->set_rules('land_phone','Land Phone','trim|required|integer|min_length[1]|max_length[50]|xss_clean');
$this->form_validation->set_rules('mobile_phone','Mobile Phone','trim|required|integer|min_length[1]|max_length[50]|xss_clean');

Ответы [ 2 ]

7 голосов
/ 22 июля 2010

Вы не можете ввести число с "-", так как вы определили integer как правило проверки.Поэтому проверка не удастся.Вам нужно работать с RegEx, чтобы вы могли создавать более сложные проверки.Дополнительную информацию смотрите в разделе о проверках в руководстве по CI.

Ваше правило проверки:

$this->form_validation->set_rules('foo', 'Number', 'callback_number_validation');

Обратите внимание, как ключевое слово callback_ используется для идентификации CIВаша функция для проверки.

Ваша функция обратного вызова:

//$str will be the value you want to verify
function number_validation($str) {
    return preg_match("your_regex", $str) ? true: false;
}
0 голосов
/ 22 июля 2010

Из коробки, я не думаю, что есть что-то, что может сделать именно это. Вам, вероятно, понадобится использовать функцию обратного вызова и проверить ее с помощью некоторого регулярного выражения. Я не слишком хорошо разбираюсь в регулярных выражениях, поэтому я не могу точно сказать вам, что вам там нужно.

Подробнее о обратных вызовах см. В Руководстве пользователя CodeIgniter: http://codeigniter.com/user_guide/libraries/validation.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...