我想在我的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');
答案 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