0

我正在尝试验证表格。我的代码如下:

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;
        }
    } 
}

现在,如果表单中没有插入数据,这可以正常工作,但如果有空格(空格)则不起作用。

有什么建议吗?

4

4 回答 4

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']))
{
于 2013-10-22T13:14:52.150 回答
0

只需使用修剪功能并检查其是否为空字符串:

if ($action=="create") {
    if (trim($data['display_name']) == '') {
        $this->_out['error'] = "Display name is required";
        echo json_encode( $this->_out );
        exit;
    }
}
于 2013-10-22T13:11:09.163 回答
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;
} 
于 2013-10-22T13:13:15.787 回答
0

===检查类型以及值比较,trim对包含值的变量使用函数会给你预期的结果。

于 2013-10-22T13:14:49.483 回答