我正在尝试验证表单。我的代码如下:
if(isset($_POST['data'])) {
$id = $this->input->post('id');
$action = $this->input->post('action');
$table = $this->input->post('table');
$data = $this->input->post('data');
$out = array();
$out['id'] = $id;
$out['error'] = '';
$out['fieldErrors'] = '';
$out['data'] = array();
$out['row'] = $data;
if($action=="create" && $data['display_name'] === '') {
if (empty($data['display_name']))
{
$this->_out['error'] = "Display name is required";
echo json_encode( $this->_out );
exit;
}
}
}
如果表单中没有插入数据,现在这样可以正常工作,但是如果有空格(空格)则不起作用。
有什么建议吗?
答案 0 :(得分:1)
有几种方法可以解决这个问题:
替换所有空格:
if (strlen(preg_replace('/\s/', '', $data['display_name'])) == 0)
{
使用trim删除前导和尾随空格:
if (strlen(trim($data['display_name'])) == 0)
{
使用str_replace()
删除无效字符:
if (strlen(str_replace(array(' ', "\t"), array('', ''), $data['display_name'])) == 0)
{
使用正则表达式验证名称:
if (!preg_match('/^([A-Za-z0-9-_]+)$/', $data['display_name']))
{
答案 1 :(得分:0)
只需使用trim函数并检查其是否为空字符串:
if ($action=="create") {
if (trim($data['display_name']) == '') {
$this->_out['error'] = "Display name is required";
echo json_encode( $this->_out );
exit;
}
}
答案 2 :(得分:0)
试试这个。我使用下面的ctype_space函数来检查空格
if($action=="create" && ($data['display_name'] === '' || ctype_space($data['display_name']))) {
$this->_out['error'] = "Display name is required";
echo json_encode( $this->_out );
exit;
}
答案 3 :(得分:0)
===
检查类型以及值比较,在包含值的变量上使用trim
函数可以得到预期的结果。