Laravel 验证文字时 digits_between 跟 between 的区别

digits_between  ! preg_match('/[^0-9]/', $value) 只匹配非数字的内容

digits_between => 字段值的长度

protected function validateDigitsBetween($attribute, $value, $parameters)
    {
        $this->requireParameterCount(2, $parameters, 'digits_between');

        $length = strlen((string) $value);

        return ! preg_match('/[^0-9]/', $value)
                    && $length >= $parameters[0] && $length <= $parameters[1];
    }

between => 字符数

protected function validateBetween($attribute, $value, $parameters)
    {
        $this->requireParameterCount(2, $parameters, 'between');

        $size = $this->getSize($attribute, $value);

        return $size >= $parameters[0] && $size <= $parameters[1];
    }
digits_between 直接将 value 字符串字符串后使用 strlen 字符串长度,  UTF-8 编码的字符串一个字长度为 3

Between 使用 getSize 通过 mb_strlen 获取长度, mb_strlen 默认使用 utf-8 编码, 返回具有 encoding 编码的字符串 str 包含的字符数。 多字节的字符被计为 1。 

你可能感兴趣的:(Laravel 验证文字时 digits_between 跟 between 的区别)