智能的数据验证spVerifier教程一,按规则验证
时间:2009-12-13
来源:互联网
在日常的开发中,我们经常会遇到针对输入数据的格式验证,比如说检查用户名的长度,电子邮件的格式等等。一般来说我们是使用验证函数库的形式来提高写作数据验证程序的效率,但是在这里我们介绍sp框架中比验证函数库更为有效和简便的数据验证功能类——spVerifier。
spVerifier是spModel的附属类之一,根据预设的验证规则来对数据进行有效性的验证。按照规则进行数据验证,有利于对验证程序的重用,如对用户名的验证,基本上在各类型的应用程序中是类似的,所以将一个程序中用户名的验证规则直接复制到另一个程序的用户名验证规则中,那样就可以完成了第二个程序对用户名的验证了。
spVerifier的验证规则分成两部分,分别是规则与提示信息,本章先介绍验证规则和一些spVerifier类自带的验证方法。
我们还是以用户名和电子邮件的验证作为例子,我们在一个应用程序需要验证用户名和电子邮件,比较一般的情况就是检查用户名不能长于12个字符也不能少于5个字符,电子邮件首先是要符合电子邮件的格式,同时也不能长于20个字符和少于8个字符。
根据以上的限制,我们在用户的模型类中写出了以下的验证规则。由于spVerifier是spModel的附属类之一,同时数据验证也是在系统模型部分的要点之一,所以spVerifier的验证都是通过spModel的继承类来进行的。
执行验证的程序:
输出的结果:
由输出的结果我们可以看到,username不符合minlength的规则,而email不符合notnull和minlength的规则。
请注意spVerifier的返回值!
返回TRUE时,代表输入的数据格式并非数组,不能进行验证。
返回数组时,代表着验证不能通过,数组内容则是提示信息。
只有返回FALSE时,才是数据已经通过验证。
所以我们可以用以下形式来作为提交数据的输入判断:
上例中的notnull和minlength都是spVerifier自带的检验规则,下面是全部的自带验证规则表:
notnull 判断字符非空,即使字符没有赋值,也是不能通过验证的。
minlength 限制字符最小长度,只有当字符长度等于或大于该长度才能通过验证。同时请注意minlength对汉字和英文的长度判断都是一样,“He我们llo”是7个字符。
maxlength 限制字符最大长度,只有当字符长度等于或小于该长度才能通过验证。同时请注意maxlength对汉字和英文的长度判断都是一样,“He我们llo”是7个字符。
istime 检验字符是否符合时间格式,比如“2009-10-27 9:19:12”将是正确的时间格式。
email 检验字符是否符合电子邮件格式。
equalto 判断字符是否等于另一个输入字符,equalto的检验是很常见的,比如很多网站注册时都需要检验两次输入的密码是否相同,就是用equalto规则,具体用法如下:
上面已经介绍了sp框架的数据验证spVerifier的一些基本应用。
接下来第二章,我们开始用这友好的提示美化一下这些验证规则,以改善用户体验。(比如说username不符合notnull规则时,就返回中文提示说“用户名不能为空”)
同时,我们可以使用的验证规则,并不只spVerifier自带规则,它还提供了强大的接口让我们可以自己创建验证规则,比如用户注册时检查用户名是否存在的规则,这些我们都在第三章介绍。
本文地址:http://speedphp.com/post/spverifier-rules.html
spVerifier是spModel的附属类之一,根据预设的验证规则来对数据进行有效性的验证。按照规则进行数据验证,有利于对验证程序的重用,如对用户名的验证,基本上在各类型的应用程序中是类似的,所以将一个程序中用户名的验证规则直接复制到另一个程序的用户名验证规则中,那样就可以完成了第二个程序对用户名的验证了。
spVerifier的验证规则分成两部分,分别是规则与提示信息,本章先介绍验证规则和一些spVerifier类自带的验证方法。
我们还是以用户名和电子邮件的验证作为例子,我们在一个应用程序需要验证用户名和电子邮件,比较一般的情况就是检查用户名不能长于12个字符也不能少于5个字符,电子邮件首先是要符合电子邮件的格式,同时也不能长于20个字符和少于8个字符。
引用
请注意,在spVerifier中针对汉字的长度判断进行了特殊的处理,令到判断最长和最短的字符的时候,英文和汉字是相等长度的。也就是“Hello”和“我是用户名”的长度都是5。这样的处理避免了许多应用程序中需要向用户解释“一个汉字等于2或者3个英文字符长度”的问题。
根据以上的限制,我们在用户的模型类中写出了以下的验证规则。由于spVerifier是spModel的附属类之一,同时数据验证也是在系统模型部分的要点之一,所以spVerifier的验证都是通过spModel的继承类来进行的。
复制代码
|
执行验证的程序:
复制代码
|
输出的结果:
复制代码
|
由输出的结果我们可以看到,username不符合minlength的规则,而email不符合notnull和minlength的规则。
请注意spVerifier的返回值!
返回TRUE时,代表输入的数据格式并非数组,不能进行验证。
返回数组时,代表着验证不能通过,数组内容则是提示信息。
只有返回FALSE时,才是数据已经通过验证。
所以我们可以用以下形式来作为提交数据的输入判断:
复制代码
|
上例中的notnull和minlength都是spVerifier自带的检验规则,下面是全部的自带验证规则表:
notnull 判断字符非空,即使字符没有赋值,也是不能通过验证的。
minlength 限制字符最小长度,只有当字符长度等于或大于该长度才能通过验证。同时请注意minlength对汉字和英文的长度判断都是一样,“He我们llo”是7个字符。
maxlength 限制字符最大长度,只有当字符长度等于或小于该长度才能通过验证。同时请注意maxlength对汉字和英文的长度判断都是一样,“He我们llo”是7个字符。
istime 检验字符是否符合时间格式,比如“2009-10-27 9:19:12”将是正确的时间格式。
email 检验字符是否符合电子邮件格式。
equalto 判断字符是否等于另一个输入字符,equalto的检验是很常见的,比如很多网站注册时都需要检验两次输入的密码是否相同,就是用equalto规则,具体用法如下:
复制代码
|
上面已经介绍了sp框架的数据验证spVerifier的一些基本应用。
接下来第二章,我们开始用这友好的提示美化一下这些验证规则,以改善用户体验。(比如说username不符合notnull规则时,就返回中文提示说“用户名不能为空”)
同时,我们可以使用的验证规则,并不只spVerifier自带规则,它还提供了强大的接口让我们可以自己创建验证规则,比如用户注册时检查用户名是否存在的规则,这些我们都在第三章介绍。
本文地址:http://speedphp.com/post/spverifier-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