YII 表单验证规则大全

<?php
class ContactForm extends CFormModel
{
    public $_id;
    public $contact;//联系人
    public $tel;//电话
    public $fax;//传真
    public $zipcode;//邮编
    public $addr;//地址
    public $mobile;//手机
    public $email;//邮箱
    public $website;//网址
    public $qq;//QQ
    public $msn;//MSN
    public function rules()
    {
        return array(
            array(‘contact‘,‘required‘,‘on‘=>‘edit‘,‘message‘=>‘联系人必须填写.‘),
            array(‘contact‘,‘length‘,‘on‘=>‘edit‘,‘min‘=>2,‘max‘=>10,‘tooShort‘=>‘联系人长度请控制在2-10个字符.‘,‘tooLong‘=>‘联系人长度请控制在2-10个字符.‘),

            array(‘tel‘, ‘match‘,‘pattern‘ => ‘/^(\d{3}-|\d{4}-)(\d{8}|\d{7})?$/‘,‘message‘ => ‘请输入正确的电话号码.‘),
            array(‘fax‘, ‘match‘,‘pattern‘ => ‘/^(\d{3}-|\d{4}-)(\d{8}|\d{7})?$/‘,‘message‘ => ‘请输入正确的传真号码.‘),
            array(‘mobile‘, ‘match‘,‘pattern‘ => ‘/^13[0-9]{1}[0-9]{8}$|15[0189]{1}[0-9]{8}$|189[0-9]{8}$/‘,‘message‘ => ‘请输入正确的手机号码.‘),

            array(‘email‘,‘email‘,‘on‘=>‘edit‘,‘message‘=>‘邮箱输入有误.‘),

            array(‘zipcode‘,‘required‘,‘on‘=>‘edit‘,‘message‘=>‘邮编必须填写.‘),
            array(‘zipcode‘,‘numerical‘,‘on‘=>‘edit‘,‘message‘=>‘邮编是6位数字.‘),
            array(‘zipcode‘,‘length‘,‘on‘=>‘edit‘,‘min‘=>6,‘max‘=>6,‘tooShort‘=>‘邮编长度为6位数.‘,‘tooLong‘=>‘邮编长度为6位数.‘),

            array(‘website‘,‘url‘,‘on‘=>‘edit‘,‘message‘=>‘网址输入有误.‘),
            array(‘qq‘, ‘match‘,‘pattern‘ => ‘/^[1-9]{1}[0-9]{4,11}$/‘,‘message‘ => ‘请输入正确的QQ号码.‘),
            array(‘msn‘,‘email‘,‘on‘=>‘edit‘,‘message‘=>‘MSN输入有误.‘),
        );
    }

}

完整示例:

public $password2;//非数据库的字段,但是在view中需要用到
	public $verify;	//手机验证码
	public $fjg; //忘记号码

	/**
	 * 映射数据库表名
	 * @return string the associated database table name

         * www.shouce.ren
	 */
	public function tableName()
	{
		return ‘adm_user‘;
	}

	/**
	 * 验证规则
	 * @return array validation rules for model attributes.
	 */
	public function rules()
	{
		// NOTE: you should only define rules for those attributes that
		// will receive user inputs.
		return array(
			//array(‘mobile_phone,name,status‘, ‘required‘),
			array(‘mobile_phone‘, ‘unique‘),//‘message‘ => ‘该手机号已经存在!‘
			array(‘mobile_phone‘, ‘match‘,‘pattern‘ => ‘/^(13|15|18)[0-9]{9}$/‘,‘message‘ => ‘请输入正确的经办人手机号码.‘),
			//array(‘certificate_id‘, ‘match‘,‘pattern‘ => ‘/(.jpg|.gif|.png|\d)$/‘,‘message‘ => ‘请重新选择证书图像并且后缀只能是jpg、gif、png格式.‘),
			array(‘phone‘, ‘match‘,‘pattern‘ => ‘/^(\d{3}-|\d{4}-)?(\d{8}|\d{7})?$/‘,‘message‘ => ‘请输入正确的座机号码.‘),
			array(‘fax‘, ‘match‘,‘pattern‘ => ‘/^(\d{3}-|\d{4}-)(\d{8}|\d{7})?$/‘,‘message‘ => ‘请输入正确的传真号码.‘),
			//array(‘email_address‘, ‘match‘,‘pattern‘ => ‘/^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/‘,‘message‘ => ‘请输入正确的邮箱.‘),
			array(‘email_address‘,‘email‘,‘message‘=>‘请输入正确的邮箱.‘),
			//验证密码和确认密码
			array("password2","compare","compareAttribute"=>"password","message"=>"两次密码不一致",‘on‘=>‘register‘),
			array("password2","compare","compareAttribute"=>"password","message"=>"两次密码不一致",‘on‘=>‘regonter‘),
			array(‘qq‘, ‘match‘,‘pattern‘ => ‘/^[1-9]{1}[0-9]{4,11}$/‘,‘message‘ => ‘请输入正确的QQ号码.‘),
			array(‘type,certificate_id,company_type, nationality,yyzz_id, status,level,create_by_id, create_time,update_time‘, ‘numerical‘, ‘integerOnly‘=>true),
			array(‘verify‘, ‘numerical‘, ‘message‘ => ‘验证码不正确‘,‘integerOnly‘=>true),
			array(‘name,user_type,tuijianren‘, ‘length‘, ‘max‘=>20),
			array(‘password‘, ‘length‘, ‘max‘=>100),
			array(‘email_address,business‘, ‘length‘, ‘max‘=>50),
			array(‘communication_address,money, yhzh,yhmc,industry, company, register_address,yhdh,shangbiao,zhuanli,gongshang‘, ‘length‘, ‘max‘=>255),
			array(‘role_id‘,‘default‘, ‘setOnEmpty‘=>true, ‘value‘=>10),
			array(‘shangbiao‘,‘default‘, ‘setOnEmpty‘=>true, ‘value‘=>‘0,0‘),
			array(‘zhuanli‘,‘default‘, ‘setOnEmpty‘=>true, ‘value‘=>‘0,0‘),
			array(‘gongshang‘,‘default‘, ‘setOnEmpty‘=>true, ‘value‘=>‘0,0‘),
			array(‘password‘,‘default‘, ‘setOnEmpty‘=>true, ‘value‘=>‘123456‘),
			/*验证码*/
			array(‘verify‘,‘checkVerify‘, ‘on‘=>‘register‘),
			array(‘email_address‘,‘checkemail‘, ‘on‘=>‘regonter‘),

// 			array(‘certificate_id‘, ‘file‘,‘allowEmpty‘=>true,
// 					‘types‘=>‘jpg, gif, png, doc, txt‘,
// 					‘maxSize‘=>1024 * 1024 * 10, // 10MB
// 					‘tooLarge‘=>‘文件大小不能超过10M!‘,
// 					‘message‘=>‘请先上传证书图像.‘
// 			),
			// The following rule is used by search().
			// @todo Please remove those attributes that should not be searched.
			array(‘id,role_id,name, password,user_type, email_address,tuijianren,shangbiao,company_type,zhuanli,gongshang,money,yhzh,yhmc,yyzz_id,yhdh,type,level, phone, qq, mobile_phone, fax, communication_address, nationality, industry, company, business, register_address, certificate, status, create_by_id, create_time, update_time‘, ‘safe‘, ‘on‘=>‘search‘),
		);
	}	

	/*
	 * 手机验证码校验
	 */
	public function checkVerify($attribute,$params)
	{
		$model=new Mess();
		$d_title = $model->find(array(‘condition‘=>‘suij=:suij and tel=:tel and type>:type and time>:time‘,‘params‘=>array(‘:suij‘=>$this->verify,‘:tel‘=>$this->mobile_phone,‘:type‘=>0,‘:time‘=>(time()-3600)),‘select‘=>array(‘id‘)));
		//$d_title = $model->findByAttributes(array(‘suij‘=>$this->verify,‘tel‘=>$this->mobile_phone),array(‘select‘=>array(‘id‘)));
		if($d_title[‘id‘]<1)
		{
			$this->addError(‘verify‘, "验证码不正确。");
		}
		else
		{
			if($this->password == $this->password2)
			{
				$model->updateAll(array(‘type‘=>0),array(‘condition‘=>‘suij=:sj‘,‘params‘=>array(‘:sj‘=>$this->verify)));
			}
		}
	}
时间: 2024-10-03 22:47:15

YII 表单验证规则大全的相关文章

Yii表单验证中,提交前验证,不通过不提交

$form = $this->beginWidget('CActiveForm',array(         'id' => 'add_host',         'enableAjaxValidation' => false,         'enableClientValidation' => true,         'clientOptions' => array(                 'validateOnSubmit' => true  

jquery.validate.js使用之自定义表单验证规则

jquery.validate.js使用之自定义表单验证规则,下面列出了一些常用的验证法规则 jquery.validate.js演示查看 jquery validate强大的jquery表单验证插件 http://www.51xuediannao.com/js/jquery/jquery_validate/ ======================================================== //扩展验证规则 //邮箱 表单验证规则jQuery.validator.

JavaScript 表单验证正则表达式大全

JavaScript验证正则表达式大全,搜集最全的JavaScript验证正则表达式,开始查看吧,这里的都是正则表达式的例子 匹配中文字符的正则表达式: [u4e00-u9fa5] 评注:匹配中文还真是个头疼的事,有了这个表达式就好办了 匹配双字节字符(包括汉字在内):[^x00-xff] 评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1) 匹配空白行的正则表达式:ns*r 评注:可以用来删除空白行 匹配HTML标记的正则表达式:< (S*?)[^>]*>.*?

jqGrid 表单验证规则参数介绍-EditRules

 colModel : [      {name:'id',index:'id',width:55,editable:false,editoptions:{readonly:true,size:10}},      {name:'invdate',index:'invdate',width:80,editable:true,editrules:{required:true}} ] editrules,是作为jqGrid提供的表单验证的规则,类似正则表达式.    参数介绍:    edithid

layui修改表单验证规则

使用layui的表单验证form.js,一旦添加验证,例如 lay-verify="phone".lay-verify="email" 就会要求必填,然而很多时候我的要求是可以不填,但是填写就需要按照规则来填写,因此原生的form.js提供的验证方法已不能满足要求,我们需要实现这样的功能就需要自己实现,我们只需要修改layui下面的form.js在对应的正则表达式"/"后面加上'(^$)|'即可,如: verify: { required: [/

Element表单验证规则

一.简单的逻辑验证使用方法: 方法步骤: 1.在html中给el-form增加 :rules="rules" 2.html中在el-form-item 中增加属性 prop="名称" 3.js中直接在data中定义rules:{} 在html中的写法: <el-form ref="formData" :rules="rules" :model="formData" label-width="

jquery.validate.js之自定义表单验证规则

1 <html> 2 <head> 3 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 4 <script type="text/javascript" src="jquery-1.8.3.js"></script> 5 <script type="text/jav

vue + element 实现登录注册(自定义表单验证规则)

注册页包含手机验证码登录和密码的二次验证. 效果如下: 实现代码: <template> <div> <div class="register-wrapper"> <div id="register"> <p class="title">注册</p> <el-form :model="ruleForm2" status-icon :rules=&qu

Python菜鸟之路:Django 表单验证

前言 Django中完成表单验证,常用的有两种方法: 一种是通过HTML + JS + Ajax实现. 另一种是通过Django自身的forms模块来生成相应个HTML标签来完成表单验证.这是本节着重讲的地方 第一种方法:html + ajax实现基本的login页面 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>