Codeigniter验证规则帮助

时间:2010-07-22 03:34:02

标签: php codeigniter validation

我想在我的CI应用程序中验证landphone和手机字段。我已将验证规则设置为整数,但用户无法输入由“ - ”分隔的值。如果我使用“文本”类型,用户也可以输入字母......我如何解决这个问题....我希望用户在字段中输入“ - ”和“+”值而不是任何其他文本< / p>

代码:

$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 个答案:

答案 0 :(得分:7)

由于您已将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;
}

答案 1 :(得分:0)

开箱即用,我认为没有任何东西可以做到这一点。您可能需要使用回调函数并使用一些正则表达式进行检查。我对正则表达式不太流利,所以我无法准确地告诉你那里你需要什么。

您可以在CodeIgniter用户指南中找到有关回调的更多信息:http://codeigniter.com/user_guide/libraries/validation.html