搜索
系统检测到您的用户名不符合规范:

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

浏览:7538 发布日期:2013年11月20日 分类:用法示例 关键字: 自动验证 callback
一直不知道自动验证的回调函数也能传参啊,尼玛,坑爹的tp,手册里也不写清楚。不过,这下好了,验证某个字段的长度就方便多了。上代码,这个代码是本人自己做项目过程中,总结出来的,绝对可用。

提示:
1.回调函数里的正则修饰符/u,是把匹配内容当成utf-8编码的字符,所以为了能够求出汉字的长度,请不要去除/u修饰符。
2.这个函数是判断字符串是否位于某个区间,大家可以稍微组装一下,可以把它改成判断某个字符串的长度至少是多少,最多不能超过多少。我就不改了。
class UserModel extends Model {
/**
* 作者:菲迷
* 时间:20131120
* */
protected $_validate = array(
array('username', 'require', '用户名必须填写!'),
array('username', 'checklength', '用户名长度必须在3-15位之间!', 0, 'callback', 3, array(3, 15)),
array('password', 'require', '密码必须填写!'),
array('confirmpwd', 'require', '确认密码必须填写!'),
array('email', 'require', '邮箱必须填写!',),
array('email', '/^[\w\-\.]+@[\w\-\.]+(\.\w+)+$/', '邮箱格式错误!', 2, 'regex'),
);
/**
*验证字符长度是否在某个区间,
*$str : 表单字段接收的内容,
*$min:最小长度,
*max:最大长度,
**/
function checklength($str, $min, $max) {
preg_match_all("/./u", $str, $matches);
$len = count($matches[0]);
if ($len < $min || $len > $max) {
return false;
} else {
return true;
}
}
}
评论() 相关
后面还有条评论,
评论支持使用[code][/code]标签添加代码
您需要登录后才可以评论 登录 | 立即注册
收藏
xuwei408
积分:2250 等级:LV3
热点推荐
(追記) (追記ここまで)
最新更新

我们

合作

网站

信息

ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。

AltStyle によって変換されたページ (->オリジナル) /