包 core

包 mvc

包 orm

包 form

包 database

包 helper

包 cache

包 webcontrols

包 behavior

包 exception

包 debug

类 - QValidator

helper
类层次 class QValidator
版本 $Id: validator.php 2663 2009-09-23 03:32:55Z jerry $

QValidator 提供了一组验证方法,以及调用验证方法的接口

保护的属性

隐藏继承的属性

属性类型描述定义于
$_locale array 本地化变量 QValidator

公共方法

隐藏继承的方法

方法描述定义于
validate() 用单个规则验证值 QValidator
validateBatch() 用一组规则验证值 QValidator
validateByArgs() 用单个规则及附加参数验证值 QValidator
validate_skip_empty() 如果为空(空字符串或者 null),则跳过余下的验证 QValidator
validate_skip_by() 自定义条件,跳过余下的验证 QValidator
validate_skip_null() 如果值为 NULL,则跳过余下的验证 QValidator
validate_skip_on_failed() 如果接下来的验证规则出错,则跳过后续的验证 QValidator
validate_regex() 使用正则表达式进行验证 QValidator
validate_equal() 是否等于指定值 QValidator
validate_not_equal() 不等于指定值 QValidator
validate_same() 是否与指定值完全一致 QValidator
validate_not_same() 是否与指定值不完全一致 QValidator
validate_strlen() 验证字符串长度 QValidator
validate_min_length() 最小长度 QValidator
validate_max_length() 最大长度 QValidator
validate_min() 最小值 QValidator
validate_max() 最大值 QValidator
validate_between() 在两个值之间 QValidator
validate_greater_than() 大于指定值 QValidator
validate_greater_or_equal() 大于等于指定值 QValidator
validate_less_than() 小于指定值 QValidator
validate_less_or_equal() 小于登录指定值 QValidator
validate_not_null() 不为 null QValidator
validate_not_empty() 不为空 QValidator
validate_is_type() 是否是特定类型 QValidator
validate_is_alnum() 是否是字母加数字 QValidator
validate_is_alpha() 是否是字母 QValidator
validate_is_alnumu() 是否是字母、数字加下划线 QValidator
validate_is_cntrl() 是否是控制字符 QValidator
validate_is_digits() 是否是数字 QValidator
validate_is_graph() 是否是可见的字符 QValidator
validate_is_lower() 是否是全小写 QValidator
validate_is_print() 是否是可打印的字符 QValidator
validate_is_punct() 是否是标点符号 QValidator
validate_is_whitespace() 是否是空白字符 QValidator
validate_is_upper() 是否是全大写 QValidator
validate_is_xdigits() 是否是十六进制数 QValidator
validate_is_ascii() 是否是 ASCII 字符 QValidator
validate_is_email() 是否是电子邮件地址 QValidator
validate_is_date() 是否是日期(yyyy/mm/dd、yyyy-mm-dd) QValidator
validate_is_time() 是否是时间(hh:mm:ss) QValidator
validate_is_datetime() 是否是日期 + 时间 QValidator
validate_is_int() 是否是整数 QValidator
validate_is_float() 是否是浮点数 QValidator
validate_is_ipv4() 是否是 IPv4 地址(格式为 a.b.c.h) QValidator
validate_is_octal() 是否是八进制数值 QValidator
validate_is_binary() 是否是二进制数值 QValidator
validate_is_domain() 是否是 Internet 域名 QValidator

属性详细说明

$_locale 属性

本地化变量

方法详细说明

validate() 方法

public static boolean validate($value, $validation)

$value mixed 要验证的值
$validation mixed 验证规则及参数
{return} boolean 验证结果

用单个规则验证值

验证通过返回 true,失败返回 false。

用法:

if (!QValidator::validate($value, 'max', 5))
{
    echo 'value 不能大于 5';
}

$validation 参数是验证规则。 如果使用 QValidator 自带的验证规则,可以使用如下的写法:

QValidator::validate($value, 'between', 1, 5);

'between' 是验证规则的名字,对应于 QValidator::validate_between() 方法。 因此要使用 QValidator 的其他验证方法,将方法名中的“validate_”去掉即为验证规则名。

如果要使用自定义的验证规则,有三种写法:

// 使用某个类的静态方法做验证方法
QValidator::validate($value, array('MyClass', 'myMethod'), $args);
 
// 功能同上
QValidator::validate($value, 'MyClass::myMethod', $args);
 
// 使用某个对象的方法做验证方法
QValidator::validate($value, array($my_obj, 'myMethod), $args);

validate() 的第一个参数是要验证的值,而第二个方法是验证规则。 如果验证规则需要更多的参数,则跟在第二个参数后面提供。


validateBatch() 方法

public static boolean validateBatch($value, $validations, $check_all, $failed)

$value mixed 要验证的值
$validations array 由多个验证规则及参数组成的数组
$check_all boolean 是否检查所有规则
$failed mixed 保存验证失败的规则名
{return} boolean 验证结果

用一组规则验证值

validateBatch() 方法对一个值应用一组验证规则,并返回最终的结果。 这一组验证规则中只要有一个验证失败,都会返回 false。 只有当所有规则都通过时,validateBatch() 方法才会返回 true。

用法:

$ret = QValidator::validateBatch($value, array(
        array('is_int'),
        array('between', 2, 6),
));

$validations 参数必须是一个数组,包含多个规则,及验证规则需要的参数。 每个规则及参数都是一个单独的数组。

如果提供了 $failed 参数,则验证失败的规则会存储在 $failed 参数中:

$failed = null;
$ret = QValidator::validateBatch($value, $validations, true, $failed);
 
dump($failed, '所有没有验证通过的规则');

validateByArgs() 方法

public static boolean validateByArgs($validation, $args)

$validation mixed 验证规则
$args array 要传递给验证规则的参数
{return} boolean 验证结果

用单个规则及附加参数验证值

validateByArgs() 方法与 validate() 方法功能相同,只是参数格式不同。

validateByArgs() 方法的第一个参数是验证规则。 第二个参数则是包括被验证值在内,要传递给验证规则的参数。

例如:

// validate() 的写法
QValidator::validate($value, 'max', 6);
 
// validateByArgs() 的写法
QValidator::validateByArgs('max', array($value, 6));

validate_skip_empty() 方法

public static boolean validate_skip_empty($value)

$value
{return} boolean

如果为空(空字符串或者 null),则跳过余下的验证


validate_skip_by() 方法

public static boolean validate_skip_by($value, $cond)

$value
$cond
{return} boolean

自定义条件,跳过余下的验证


validate_skip_null() 方法

public static boolean validate_skip_null($value)

$value
{return} boolean

如果值为 NULL,则跳过余下的验证


validate_skip_on_failed() 方法

public static boolean validate_skip_on_failed()

如果接下来的验证规则出错,则跳过后续的验证


validate_regex() 方法

public static boolean validate_regex($value, $regxp)

$value mixed
$regxp string
{return} boolean

使用正则表达式进行验证


validate_equal() 方法

public static boolean validate_equal($value, $test)

$value mixed
$test mixed
{return} boolean

是否等于指定值


validate_not_equal() 方法

public static boolean validate_not_equal($value, $test)

$value mixed
$test mixed
{return} boolean

不等于指定值


validate_same() 方法

public static boolean validate_same($value, $test)

$value mixed
$test mixed
{return} boolean

是否与指定值完全一致


validate_not_same() 方法

public static boolean validate_not_same($value, $test)

$value mixed
$test mixed
{return} boolean

是否与指定值不完全一致


validate_strlen() 方法

public static boolean validate_strlen($value, $len)

$value string
$len int
{return} boolean

验证字符串长度


validate_min_length() 方法

public static boolean validate_min_length($value, $len)

$value mixed
$len int
{return} boolean

最小长度


validate_max_length() 方法

public static boolean validate_max_length($value, $len)

$value mixed
$len int
{return} boolean

最大长度


validate_min() 方法

public static boolean validate_min($value, $min)

$value mixed
$min int|float
{return} boolean

最小值


validate_max() 方法

public static boolean validate_max($value, $max)

$value mixed
$max int|float
{return} boolean

最大值


validate_between() 方法

public static boolean validate_between($value, $min, $max, $inclusive)

$value mixed
$min int|float
$max int|float
$inclusive boolean 是否包含 min/max 在内
{return} boolean

在两个值之间


validate_greater_than() 方法

public static boolean validate_greater_than($value, $test)

$value mixed
$test int|float
{return} boolean

大于指定值


validate_greater_or_equal() 方法

public static boolean validate_greater_or_equal($value, $test)

$value mixed
$test int|float
{return} boolean

大于等于指定值


validate_less_than() 方法

public static boolean validate_less_than($value, $test)

$value mixed
$test int|float
{return} boolean

小于指定值


validate_less_or_equal() 方法

public static boolean validate_less_or_equal($value, $test)

$value mixed
$test int|float
{return} boolean

小于登录指定值


validate_not_null() 方法

public static boolean validate_not_null($value)

$value mixed
{return} boolean

不为 null


validate_not_empty() 方法

public static boolean validate_not_empty($value)

$value mixed
{return} boolean

不为空


validate_is_type() 方法

public static boolean validate_is_type($value, $type)

$value mixed
$type string
{return} boolean

是否是特定类型


validate_is_alnum() 方法

public static boolean validate_is_alnum($value)

$value mixed
{return} boolean

是否是字母加数字


validate_is_alpha() 方法

public static boolean validate_is_alpha($value)

$value mixed
{return} boolean

是否是字母


validate_is_alnumu() 方法

public static boolean validate_is_alnumu($value)

$value mixed
{return} boolean

是否是字母、数字加下划线


validate_is_cntrl() 方法

public static boolean validate_is_cntrl($value)

$value mixed
{return} boolean

是否是控制字符


validate_is_digits() 方法

public static boolean validate_is_digits($value)

$value mixed
{return} boolean

是否是数字


validate_is_graph() 方法

public static boolean validate_is_graph($value)

$value mixed
{return} boolean

是否是可见的字符


validate_is_lower() 方法

public static boolean validate_is_lower($value)

$value mixed
{return} boolean

是否是全小写


validate_is_print() 方法

public static boolean validate_is_print($value)

$value mixed
{return} boolean

是否是可打印的字符


validate_is_punct() 方法

public static boolean validate_is_punct($value)

$value mixed
{return} boolean

是否是标点符号


validate_is_whitespace() 方法

public static boolean validate_is_whitespace($value)

$value mixed
{return} boolean

是否是空白字符


validate_is_upper() 方法

public static boolean validate_is_upper($value)

$value mixed
{return} boolean

是否是全大写


validate_is_xdigits() 方法

public static boolean validate_is_xdigits($value)

$value mixed
{return} boolean

是否是十六进制数


validate_is_ascii() 方法

public static boolean validate_is_ascii($value)

$value mixed
{return} boolean

是否是 ASCII 字符


validate_is_email() 方法

public static boolean validate_is_email($value)

$value mixed
{return} boolean

是否是电子邮件地址


validate_is_date() 方法

public static boolean validate_is_date($value)

$value mixed
{return} boolean

是否是日期(yyyy/mm/dd、yyyy-mm-dd)


validate_is_time() 方法

public static boolean validate_is_time($value)

$value mixed
{return} boolean

是否是时间(hh:mm:ss)


validate_is_datetime() 方法

public static boolean validate_is_datetime($value)

$value mixed
{return} boolean

是否是日期 + 时间


validate_is_int() 方法

public static boolean validate_is_int($value)

$value mixed
{return} boolean

是否是整数


validate_is_float() 方法

public static void validate_is_float($value)

$value mixed
{return}

是否是浮点数


validate_is_ipv4() 方法

public static boolean validate_is_ipv4($value)

$value mixed
{return} boolean

是否是 IPv4 地址(格式为 a.b.c.h)


validate_is_octal() 方法

public static boolean validate_is_octal($value)

$value mixed
{return} boolean

是否是八进制数值


validate_is_binary() 方法

public static boolean validate_is_binary($value)

$value mixed
{return} boolean

是否是二进制数值


validate_is_domain() 方法

public static boolean validate_is_domain($value)

$value mixed
{return} boolean

是否是 Internet 域名