包 | helper |
---|---|
类层次 | class QValidator |
版本 | $Id: validator.php 2663 2009-09-23 03:32:55Z jerry $ |
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 |
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() 的第一个参数是要验证的值,而第二个方法是验证规则。 如果验证规则需要更多的参数,则跟在第二个参数后面提供。
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, '所有没有验证通过的规则');
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));
public static boolean validate_skip_empty($value)
$value | ||
{return} | boolean |
如果为空(空字符串或者 null),则跳过余下的验证
public static boolean validate_skip_by($value, $cond)
$value | ||
$cond | ||
{return} | boolean |
自定义条件,跳过余下的验证
public static boolean validate_skip_null($value)
$value | ||
{return} | boolean |
如果值为 NULL,则跳过余下的验证
public static boolean validate_skip_on_failed()
如果接下来的验证规则出错,则跳过后续的验证
public static boolean validate_regex($value, $regxp)
$value | mixed | |
$regxp | string | |
{return} | boolean |
使用正则表达式进行验证
public static boolean validate_equal($value, $test)
$value | mixed | |
$test | mixed | |
{return} | boolean |
是否等于指定值
public static boolean validate_not_equal($value, $test)
$value | mixed | |
$test | mixed | |
{return} | boolean |
不等于指定值
public static boolean validate_same($value, $test)
$value | mixed | |
$test | mixed | |
{return} | boolean |
是否与指定值完全一致
public static boolean validate_not_same($value, $test)
$value | mixed | |
$test | mixed | |
{return} | boolean |
是否与指定值不完全一致
public static boolean validate_strlen($value, $len)
$value | string | |
$len | int | |
{return} | boolean |
验证字符串长度
public static boolean validate_min_length($value, $len)
$value | mixed | |
$len | int | |
{return} | boolean |
最小长度
public static boolean validate_max_length($value, $len)
$value | mixed | |
$len | int | |
{return} | boolean |
最大长度
public static boolean validate_min($value, $min)
$value | mixed | |
$min | int|float | |
{return} | boolean |
最小值
public static boolean validate_max($value, $max)
$value | mixed | |
$max | int|float | |
{return} | boolean |
最大值
public static boolean validate_between($value, $min, $max, $inclusive)
$value | mixed | |
$min | int|float | |
$max | int|float | |
$inclusive | boolean | 是否包含 min/max 在内 |
{return} | boolean |
在两个值之间
public static boolean validate_greater_than($value, $test)
$value | mixed | |
$test | int|float | |
{return} | boolean |
大于指定值
public static boolean validate_greater_or_equal($value, $test)
$value | mixed | |
$test | int|float | |
{return} | boolean |
大于等于指定值
public static boolean validate_less_than($value, $test)
$value | mixed | |
$test | int|float | |
{return} | boolean |
小于指定值
public static boolean validate_less_or_equal($value, $test)
$value | mixed | |
$test | int|float | |
{return} | boolean |
小于登录指定值
public static boolean validate_not_null($value)
$value | mixed | |
{return} | boolean |
不为 null
public static boolean validate_not_empty($value)
$value | mixed | |
{return} | boolean |
不为空
public static boolean validate_is_type($value, $type)
$value | mixed | |
$type | string | |
{return} | boolean |
是否是特定类型
public static boolean validate_is_alnum($value)
$value | mixed | |
{return} | boolean |
是否是字母加数字
public static boolean validate_is_alpha($value)
$value | mixed | |
{return} | boolean |
是否是字母
public static boolean validate_is_alnumu($value)
$value | mixed | |
{return} | boolean |
是否是字母、数字加下划线
public static boolean validate_is_cntrl($value)
$value | mixed | |
{return} | boolean |
是否是控制字符
public static boolean validate_is_digits($value)
$value | mixed | |
{return} | boolean |
是否是数字
public static boolean validate_is_graph($value)
$value | mixed | |
{return} | boolean |
是否是可见的字符
public static boolean validate_is_lower($value)
$value | mixed | |
{return} | boolean |
是否是全小写
public static boolean validate_is_print($value)
$value | mixed | |
{return} | boolean |
是否是可打印的字符
public static boolean validate_is_punct($value)
$value | mixed | |
{return} | boolean |
是否是标点符号
public static boolean validate_is_whitespace($value)
$value | mixed | |
{return} | boolean |
是否是空白字符
public static boolean validate_is_upper($value)
$value | mixed | |
{return} | boolean |
是否是全大写
public static boolean validate_is_xdigits($value)
$value | mixed | |
{return} | boolean |
是否是十六进制数
public static boolean validate_is_ascii($value)
$value | mixed | |
{return} | boolean |
是否是 ASCII 字符
public static boolean validate_is_email($value)
$value | mixed | |
{return} | boolean |
是否是电子邮件地址
public static boolean validate_is_date($value)
$value | mixed | |
{return} | boolean |
是否是日期(yyyy/mm/dd、yyyy-mm-dd)
public static boolean validate_is_time($value)
$value | mixed | |
{return} | boolean |
是否是时间(hh:mm:ss)
public static boolean validate_is_datetime($value)
$value | mixed | |
{return} | boolean |
是否是日期 + 时间
public static boolean validate_is_int($value)
$value | mixed | |
{return} | boolean |
是否是整数
public static void validate_is_float($value)
$value | mixed | |
{return} |
是否是浮点数
public static boolean validate_is_ipv4($value)
$value | mixed | |
{return} | boolean |
是否是 IPv4 地址(格式为 a.b.c.h)
public static boolean validate_is_octal($value)
$value | mixed | |
{return} | boolean |
是否是八进制数值
public static boolean validate_is_binary($value)
$value | mixed | |
{return} | boolean |
是否是二进制数值
public static boolean validate_is_domain($value)
$value | mixed | |
{return} | boolean |
是否是 Internet 域名