我想使用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;
}
}
有什么想法吗?
答案 0 :(得分:0)
将此方法添加到您正在进行验证的控制器类中。或者如果你想把它放在其他地方,请确保它是callable:
public function checkNIC($nic)
{
$this->form_validation->set_message('checkNIC', 'The NIC is not valid');
return $nic === '' || (bool) preg_match('/^\d{9}[xXvV]$/', $nic);
}