使用回调规则在CodeIgniter中进行字符串验证

时间:2016-11-22 06:53:20

标签: php regex codeigniter validation

我想使用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;
        }
    }

有什么想法吗?

1 个答案:

答案 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);
}

看看:
https://3v4l.org/X3DhC