使用Codeigniter表单验证时,alpha是否允许空格?防爆。 “鲍勃史密斯”
答案 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'
]
);