codeigniter set_rules允许更多字符

时间:2011-09-25 18:19:58

标签: php codeigniter

我正在建立一个注册系统,我遇到了一个问题。

我想让点(。)进入我的用户名,但我找不到办法来做到这一点......

这只是我可能想要在我的应用程序的订单功能中使用的一个示例。

这是我到目前为止所得到的:

    $this->load->library('form_validation');

    $this->form_validation->set_rules('username', 'Username', 'trim|required|alpha_numeric|min_length[6]|xss_clean');

由于

1 个答案:

答案 0 :(得分:3)

您必须在控制器中创建自己的自定义功能:

class Form extends CI_Controller
{

    function index()
    {    
        $this->load->library('form_validation');

        // 'callback_valid_username' will call your controller method `valid_username`
        $this->form_validation->set_rules('username', 'Username', 'trim|required|callback_valid_username|min_length[6]|xss_clean');

        if ($this->form_validation->run() == FALSE)
        {
            // Validation failed
        }
        else
        {
            // Validation passed
        }
    }

    function valid_username($str)
    {
        if ( ! preg_match('/^[a-zA-Z0-9.]*$/', $str) )
        {
            // Set the error message:
            $this->form_validation->set_message('valid_username', 'The %s field should contain only letters, numbers or periods');
            return FALSE;
        }
        else
        {
            return TRUE;
        }
    }
}

有关自定义验证功能的更多信息,请阅读文档:

http://codeigniter.com/user_guide/libraries/form_validation.html#callbacks