智能的数据验证spVerifier教程三,创建自己的验证规则
时间:2009-12-13
来源:互联网
前面我们已经介绍了spVerifier的规则验证及信息提示方法,接下来我们继续开发spVerifier的能力,在验证中加入自己创建的验证规则。
首先我们看一下例子
下面我们来详细说明一下创建自定义验证规则的过程:
一、首先我们需要在user类(spModel继承类)中,设置$addrules,这样就能定义我们的自建规则的处理函数了。$addrules是一个数组,数组项的键是规则名称,值就是一个规则处理函数的定义。定义的函数可以有两种形式:
第一种是 '规则名称' => '验证函数名',这是当函数是一个单纯的函数时使用
第二种是‘规则名称’=> array('类名', '方法函数名'),这是当函数是一个类的某个方法函数时候使用。
这里就已经定义了youare和is_phone两个规则,youare的处理函数是独立函数checkname(),而is_phone的处理函数是user类的check_phone方法。
二、写作处理函数的代码。我们先看看checkname()的代码:
正如注释内说明的一样,处理函数的参数必须是($val, $right),它们分别代码了输入的字符($val),正确的字符($right)。
请注意,spVerifier同时还提供了第三个参数$values。以下两种写法都是正确的:
function checkname($val, $right){
或者
function checkname($val, $right, $values){
$values是一个数组,主要的作用是保存了其他的输入字符,当自建的验证函数需要到其他的输入字符时,就可以直接使用$values。比如说在验证用户籍贯时,用户同时输入了省份和城市,那么在验证城市的时候,也是需要获取省份进行共同验证的。
spVerifier规定了规则处理函数必须返回TRUE或者FALSE,返回TRUE是通过了验证,返回FALSE是无法通过验证。
如果函数返回的并非TRUE/FALSE,那程序有可能判断成非FALSE,即是TRUE的,所以请严格的控制规则处理函数仅返回TRUE/FALSE。
规则处理函数同时也可以是类的方法函数:
与user::is_phone的调用形式不同,规则处理函数在调用类方法的时候,是使用spClass(user)->is_phone(…)形式的,这样调用有利于对象的初始化。
上面介绍了如何创建自己的验证规则,那么现在我们可以自己动手试试,比如建立一个验证用户名是否重复的规则,或建立一个过滤留言中不良词语的规则吧。
本文地址:http://speedphp.com/post/spverifier-create-rules.html
首先我们看一下例子
复制代码
|
下面我们来详细说明一下创建自定义验证规则的过程:
一、首先我们需要在user类(spModel继承类)中,设置$addrules,这样就能定义我们的自建规则的处理函数了。$addrules是一个数组,数组项的键是规则名称,值就是一个规则处理函数的定义。定义的函数可以有两种形式:
第一种是 '规则名称' => '验证函数名',这是当函数是一个单纯的函数时使用
第二种是‘规则名称’=> array('类名', '方法函数名'),这是当函数是一个类的某个方法函数时候使用。
复制代码
|
这里就已经定义了youare和is_phone两个规则,youare的处理函数是独立函数checkname(),而is_phone的处理函数是user类的check_phone方法。
二、写作处理函数的代码。我们先看看checkname()的代码:
复制代码
|
正如注释内说明的一样,处理函数的参数必须是($val, $right),它们分别代码了输入的字符($val),正确的字符($right)。
请注意,spVerifier同时还提供了第三个参数$values。以下两种写法都是正确的:
function checkname($val, $right){
或者
function checkname($val, $right, $values){
$values是一个数组,主要的作用是保存了其他的输入字符,当自建的验证函数需要到其他的输入字符时,就可以直接使用$values。比如说在验证用户籍贯时,用户同时输入了省份和城市,那么在验证城市的时候,也是需要获取省份进行共同验证的。
spVerifier规定了规则处理函数必须返回TRUE或者FALSE,返回TRUE是通过了验证,返回FALSE是无法通过验证。
如果函数返回的并非TRUE/FALSE,那程序有可能判断成非FALSE,即是TRUE的,所以请严格的控制规则处理函数仅返回TRUE/FALSE。
规则处理函数同时也可以是类的方法函数:
复制代码
|
与user::is_phone的调用形式不同,规则处理函数在调用类方法的时候,是使用spClass(user)->is_phone(…)形式的,这样调用有利于对象的初始化。
上面介绍了如何创建自己的验证规则,那么现在我们可以自己动手试试,比如建立一个验证用户名是否重复的规则,或建立一个过滤留言中不良词语的规则吧。
本文地址:http://speedphp.com/post/spverifier-create-rules.html
作者: jake 发布时间: 2009-12-13
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28