Codeigniter表单验证。阿尔法和空间

时间:2012-02-06 17:42:26

标签: codeigniter

使用Codeigniter表单验证时,alpha是否允许空格?防爆。 “鲍勃史密斯”

6 个答案:

答案 0 :(得分:16)

这是一个可以解决问题的代码:

function alpha_dash_space($str)
{
    return ( ! preg_match("/^([-a-z_ ])+$/i", $str)) ? FALSE : TRUE;
} 

在规则中,您可以按如下方式调用它:

$this->form_validation->set_rules('name', 'Name', trim|xss_clean|callback_alpha_dash_space');

修改

从callback_alpha_dash_space

中删除了一个额外的_

答案 1 :(得分:5)

不,它不允许空格。

有人编写了一个库扩展,允许这样做:http://ellislab.com/forums/viewthread/158696/#794699

答案 2 :(得分:5)

我知道我很晚才回答这个问题。但是对于那些仍在寻找如何只允许字母和空格的答案的人,你可以遵循:

表单验证

$this->form_validation->set_rules('fullname', 'Fullname', 'min_length[7]|trim|required|xss_clean|callback_alpha_dash_space');

然后为alpha_dash_space添加回调函数

function alpha_dash_space($fullname){
    if (! preg_match('/^[a-zA-Z\s]+$/', $fullname)) {
        $this->form_validation->set_message('alpha_dash_space', 'The %s field may only contain alpha characters & White spaces');
        return FALSE;
    } else {
        return TRUE;
    }
}
  • ^$告诉它是字符串的开头和结尾
  • a-z是小写字母,A-Z是大写字母
  • \s是空格,+表示1次或更多次。

希望它有所帮助!

答案 3 :(得分:1)

您可以使用

$field = trim($_POST['field']);
$_POST['field'] = str_replace(' ', '', $_POST['field']);

并在规则中将其检查为alpha,然后您可以在成功验证后使用$ field。

$this->form_validation->set_rules('field', 'FIELD', 'alpha');

答案 4 :(得分:0)

单行解决方案:

 $this->form_validation->set_rules('field', 'Field', 'regex_match[/^([a-z ])+$/i]');

字母字符和空格。

答案 5 :(得分:0)

最简单的解决方案是

通过在表单验证中使用alpha_numeric_spaces 这允许用户输入字母,数字和空格

示例:

$this->form_validation->set_rules
        ('username', 
        'Username', 
        'required|alpha_numeric_spaces|trim|is_unique[user.username]',
        [
            
            'required' => 'Error msg',
            'alpha_numeric_spaces'=>'Error msg for alpha_numeric_spaces',
            'is_unique' => 'Error msg'
        ]  
        );