>php教程 >php手册 >thinkphp自动验证--回调函数验证表单字段长度的用法

thinkphp自动验证--回调函数验证表单字段长度的用法

WBOY
WBOY원래의
2016-06-07 11:43:15971검색

一直不知道自动验证的回调函数也能传参啊,尼玛,坑爹的tp,手册里也不写清楚。不过,这下好了,验证某个字段的长度就方便多了。上代码,这个代码是本人自己做项目过程中,总结出来的,绝对可用。

提示:
1.回调函数里的正则修饰符/u,是把匹配内容当成utf-8编码的字符,所以为了能够求出汉字的长度,请不要去除/u修饰符。
2.这个函数是判断字符串是否位于某个区间,大家可以稍微组装一下,可以把它改成判断某个字符串的长度至少是多少,最多不能超过多少。我就不改了。
class UserModel extends Model {<br>  /**<br>      * 作者:菲迷<br>      * 时间:20131120<br>      * */<br>     protected $_validate = array(<br>         array('username', 'require', '用户名必须填写!'), <br>         array('username', 'checklength', '用户名长度必须在3-15位之间!', 0, 'callback', 3, array(3, 15)),<br>         array('password', 'require', '密码必须填写!'),<br>         array('confirmpwd', 'require', '确认密码必须填写!'),<br>         array('email', 'require', '邮箱必须填写!',),<br>         array('email', '/^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/', '邮箱格式错误!', 2, 'regex'),<br>     );<br> /**<br> *验证字符长度是否在某个区间,<br>  *$str : 表单字段接收的内容,<br>  *$min:最小长度,<br>  *max:最大长度,<br> **/<br>     function checklength($str, $min, $max) {<br>         preg_match_all("/./u", $str, $matches);<br>         $len = count($matches[0]);<br>         if ($len  $max) {<br>             return false;<br>         } else {<br>             return true;<br>         }<br>     }<br> }

AD:真正免费,域名+虚机+企业邮箱=0元

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.