【问题标题】:Codeigniter Validation Rules HelpCodeigniter 验证规则帮助
【发布时间】:2011-03-19 08:23:34
【问题描述】:

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

【问题讨论】:

  • 我们需要查看您的验证码。
  • $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','手机','trim|required|integer|min_length[1]|max_length[50]|xss_clean');
  • 我将您的代码粘贴到您的问题中。将来,您应该编辑您的问题以添加任何额外信息,而不是离开 cmets。
  • 好的....但是我们如何解决这个问题

标签: php codeigniter validation


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    您不能输入带有“-”的数字,因为您将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;
    }
    

    【讨论】:

      猜你喜欢
      • 2011-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-19
      • 1970-01-01
      • 2015-04-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多