【发布时间】:2016-11-22 06:53:20
【问题描述】:
我想使用 CodeIgniter 的表单验证库检查字符串是否有效。
如果输入字符串在这个集合中有9个数字+1个字符:[xXvV]或者字符串为空,则认为有效。 (例如:“123456789X”、“987654321v”、“”)。我使用preg_match() 实现了一个回调规则,但无济于事。
在我的控制器中设置规则:
$this->form_validation->set_rules('nic', 'NIC', 'trim|xss_clean|callback_checkNIC');
这是我的回调函数:
public function checkNIC($nic){
$reg = '/^(\d\d\d\d\d\d\d\d\d)[xXvV]$/';
if(preg_match($reg, $nic) || $nic == '') {
return TRUE;
}
else {
$this->form_validation->set_message('checkNIC', 'The NIC is not valid');
return FALSE;
}
}
有什么想法吗?
【问题讨论】:
-
请更具体。它怎么不工作?有什么错误吗?你在哪里定义回调?在同一个控制器中?
-
我在同一个控制器中定义了回调。
-
你怎么说它失败了?回调是否被调用?!
标签: php regex codeigniter validation