preg_match():找不到结束分隔符'/'

时间:2014-11-11 07:32:27

标签: regex codeigniter

$this->form_validation->set_rules('ttime','Time', 'required|regex_match[/^(0?[1-9]|1[012])(:[0-5]\d)$/]');

我的正则表达式是正确的仍然显示和错误为 严重性:警告

消息:preg_match():没有结束分隔符' /'结果

文件名:libraries / Form_validation.php

行号:911

2 个答案:

答案 0 :(得分:2)

也遇到了这个问题。问题确实是codeigniter使用的管道|字符,但添加单引号并没有为我做。尝试:

1)传递一系列规则而不是管道字符串:

$this->form_validation->set_rules('field',
                                  'field name', 
                                   array('required','regex_match[/your-regex/]'))

2)创建一个自定义回调,用于指出here

的规则
    function my_func ($field) {
            return (bool)preg_match('/your-regex-here/', $field);
    }

    $this->form_validation->set_rules('field','Field Name', 'required|my_func');

3)您还可以使用匿名功能,它是1&组合的组合。 2

查看documentation,我希望这有帮助。

答案 1 :(得分:0)

我感兴趣的是Anous1000 answer的第1部分。

因此添加它。如果您将 config 文件用于验证规则,而不是上面提到的set_rules()方法,那么您可能会感兴趣

$config = array(
    array(
            'field' => 'field',
            'label' => 'field name',
            'rules' => array('required','regex_match[/your-regex/]')
    )
);