0

我的代码是这样的:

   case 'phone_number':
                        $pattern = "/^\s*\+?\s*([0-9]+\s*)+\s*(\((\+?[0-9]+\s*)+\))?\s*[0-9-\s]*[0-9]\s*(x\s*[\d]{1,})?$/";
                        //$trimmed = str_replace(' ', '', $pattern);
                        $pattern = preg_replace(' ', '', $pattern);

                break;

                default:
                        return false;
                break;

        }
        return preg_match($pattern, $data) ? true : false;

这是对电话号码的验证,我想在要删除的号码后是否有空格,这样它就不会因我的错误条件而失败trim(strlen($_POST['phone_number'])) > 30

我怎样才能做到这一点 ?多谢!

4

1 回答 1

3

您正在调用:

trim(strlen($_POST['phone_number'])) > 30

翻译为:

strlen($_POST['number'])) --> will be 10, or 12

trim( the_number_above ) --> nothing to trim

当然,这个数字将少于 30 - 以正确的顺序调用函数:

strlen(
    trim( $_POST['phone_numer'] )
) > 30

无论如何,我会在脚本一开始就修剪所有输入,而不是在你做的每一次检查中。

于 2012-08-24T11:46:01.367 回答