$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
答案 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/]')
)
);