Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Codeigniter表单验证。阿尔法空间_Codeigniter - Fatal编程技术网

Codeigniter表单验证。阿尔法空间

Codeigniter表单验证。阿尔法空间,codeigniter,Codeigniter,使用Codeigniter表单验证时,alpha是否允许空格?例如“Bob Smith”不,它不允许空格 有人编写了一个库扩展,允许这样做:下面是一段代码,可以解决您的问题: function alpha_dash_space($str) { return ( ! preg_match("/^([-a-z_ ])+$/i", $str)) ? FALSE : TRUE; } 在规则中,您可以按如下方式调用它: $this->form_validation->set_rul

使用Codeigniter表单验证时,alpha是否允许空格?例如“Bob Smith”

不,它不允许空格


有人编写了一个库扩展,允许这样做:

下面是一段代码,可以解决您的问题:

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');
编辑

从回调字母破折号空间中删除了一个额外的字符

您可以使用

$field = trim($_POST['field']);
$_POST['field'] = str_replace(' ', '', $_POST['field']);
并在规则中将其选中为alpha,然后在成功验证后可以使用$field

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

我知道我来不及回答这个问题了。但对于那些仍在寻找如何只允许字母和空格的答案的人,您可以遵循以下步骤:

表单内验证

$this->form_validation->set_rules('fullname', 'Fullname', 'min_length[7]|trim|required|xss_clean|callback_alpha_dash_space');
然后为alpha\u dash\u空间添加回调函数

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
    是空白,
    +
    表示一次或多次
希望有帮助

单线解决方案:

 $this->form_validation->set_rules('field', 'Field', 'regex_match[/^([a-z ])+$/i]');
字母字符和空格。

最简单的解决方案是

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

例如:

$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'
        ]  
        );

你测试过了吗?根据,它只是“字母字符”,所以没有空格。是的,它不允许空格,但是你可以创建一个回调函数来检查它。有关详细信息,请参见本网站,只需一点旁注:CI 2.1.4在将验证函数设置为回调(即“回调”\u alpha\u dash\u space”)时仅使用一个下划线。我使用了它,并且它还允许数字……应该仅限于alpha如果我不想允许dash,那么正则表达式将是
/^([a-z!])+$/i