Codeigniter表单验证。阿尔法空间
使用Codeigniter表单验证时,alpha是否允许空格?例如“Bob Smith”不,它不允许空格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
有人编写了一个库扩展,允许这样做:下面是一段代码,可以解决您的问题:
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
?