• Yii正则验证


    required : 必须值验证属性

    [['字段名'],required,'requiredValue'=>'必填值','message'=>'提示信息']; #说明:CRequiredValidator 的别名, 确保了特性不为空. 
    

    email : 邮箱验证

    ['email', 'email']; #说明:CEmailValidator的别名,确保了特性的值是一个有效的电邮地址. 
    

    match : 正则验证

    [['字段名'],'match','pattern'=>'正则表达式','message'=>'提示信息'];      
    [['字段名'],'match','not'=>'ture','pattern'=>'正则表达式','message'=>'提示信息']; /*正则取反*/ #说明:CRegularExpressionValidator 的别名, 确保了特性匹配一个正则表达式. 
    

    url : 网址

    ['website', 'url', 'defaultScheme' => 'http']; #说明:CUrlValidator 的别名, 确保了特性是一个有效的路径. 
    

    captcha : 验证码

    ['verificationCode', 'captcha']; #说明:CCaptchaValidator 的别名,确保了特性的值等于 CAPTCHA 显示出来的验证码. 
    

    safe : 安全

    ['description', 'safe'];
    

    compare : 比较

    ['age', 'compare', 'compareValue' => 30, 'operator' => '>=']; #说明:compareValue(比较常量值) - operator(比较操作符)  #说明:CCompareValidator 的别名,确保了特性的值等于另一个特性或常量. 
    

    default : 默认值

    ['age', 'default', 'value' => null]; #说明:CDefaultValueValidator 的别名, 为特性指派了一个默认值. 
    

    exist : 存在

    ['username', 'exist']; #说明:CExistValidator 的别名,确保属性值存在于指定的数据表字段中. 
    

    file : 文件

    ['primaryImage', 'file', 'extensions' => ['png', 'jpg', 'gif'], 'maxSize' => 1024*1024*1024]; #说明:CFileValidator 的别名, 确保了特性包含了一个上传文件的名称. 
    

    filter : 滤镜

    [['username', 'email'], 'filter', 'filter' => 'trim', 'skipOnArray' => true]; #说明:CFilterValidator 的别名, 使用一个filter转换属性. 
    

    in : 范围

    ['level', 'in', 'range' => [1, 2, 3]]; #说明:CRangeValidator 的别名,确保了特性出现在一个预订的值列表里. 
    

    unique : 唯一性

    ['username', 'unique'] #说明:CUniqueValidator 的别名,确保了特性在数据表字段中是唯一的. 
    

    integer : 整数

    ['age', 'integer'];
    

    number : 数字

    ['salary', 'number'];
    

    double : 双精度浮点型

    ['salary', 'double'];
    

    date : 日期

    [['from', 'to'], 'date'];
    

    string : 字符串

    ['username', 'string', 'length' => [4, 24]];
    

    boolean : 是否为一个布尔值

    ['字段名', 'boolean', 'trueValue' => true, 'falseValue' => false, 'strict' => true]; #说明:CBooleanValidator 的别名 
    

    Yii CModel中rules验证规则

    array(

     array(‘username’, ‘required’),
     array(‘username’, ‘length’, ‘min’=>3, ‘max’=>12),
     array(‘password’, ‘compare’, ‘compareAttribute’=>’password2′, ‘on’=>’register’),
     array(‘password’, ‘authenticate’, ‘on’=>’login’),

      array(‘Price’,’numerical’, ‘integerOnly’=>true),
    );
    public function rules()
    {
      return array(
          array(‘title, content, status’, ‘required’),
          array(‘title’, ‘length’, ‘max’=>128),
          array(‘status’, ‘in’, ‘range’=>array(1,2,3)),
          array(‘tags’, ‘match’, ‘pattern’=>’/^[ws,]+$/’,
              ‘message’=>’Tags can only contain word characters.’),
          array(‘tags’, ‘normalizeTags’),
          array(‘title, status’, ‘safe’, ‘on’=>’search’),
      );
    }
    预定义完整列表: 

    yii验证rulesit 分类: Yii yii的rules验证 cValidator主要属性 attributes ,builtInValidators,enableClientValidation,message,on,safe,skipOnError

    经常用到的属性有 attributes,builtInvalidators,message,on这四个

    下面是对应的验证类

    required: CRequiredValidator

    filter: CFilterValidator

    match: CRegularExpressionValidator

    email: CEmailValidator

    url: CUrlValidator

    unique: CUniqueValidator

    compare: CCompareValidator

    length: CStringValidator

    in: CRangeValidator

    numerical: CNumberValidator

    captcha: CCaptchaValidator

    type: CTypeValidator

    file: CFileValidator

    default: CDefaultValueValidator

    exist: CExistValidator

    boolean: CBooleanValidator

    date: CDateValidator

    safe: CSafeValidator

    unsafe: CUnsafeValidator

    -------------------------------------------------------------

    1、CRequiredValidator – 必须值验证属性

    requiredValue-mixed-所需的值

    strict-boolean-是否比较严格

    实例: array(‘username’, ‘required’), 不能为空

    array(‘username’, ‘required’, ‘requiredValue’=>’lh’,’message’=> ‘usernmae must be lh’), 这个值必须为lh,如果填其他值还是会验证不过

    array(‘username’, ‘required’, ‘requiredValue’=>’lh’, ‘strict’=>true), 严格验证 还可以在后面加 ‘message’=>”,’on’=>这些

    ------------------------------------------------------------

    2、CFilterValidator 过滤验证属性

    filter – 方法名 (调用用户自己定义的函数)

    实例:

    array(‘username’, ‘test’) function test() { $username = $this->username; if($username != ‘lh’){ $this->addError(‘username’, ‘username must be lh’); } }

    使用这个方法如果你还在array里面写message=>”,给出的提示信息还是你的test里面的。也就是以test里面的错误信息为准

    -----------------------------------------------------------

    3、CRegularExpressionValidator -正则验证属性

         allowEmpty – 是否为空(默认true)

    not-是否反转的验证逻辑(默认false) 

    pattern – 正则表达式匹配

    实例:

    // 匹配a-z array(‘username’, ‘match’, ‘allowEmpty’=>true, ‘pattern’=>’/[a-z]/i’,’message’=>’必须为字母’),

    // 匹配不是a-z array(‘username’, ‘match’, ‘allowEmpty’=>true, ‘not’=>true, ‘pattern’=>’/[a-z]/i’,’message’=>’必须不是字母’),

    -----------------------------------------------------------

    4、CEmailValidator –邮箱验证属性:

    allowEmpty – 是否为空

    allowName – 是否允许在电子邮件地址的名称

    checkMx – 是否检查电子邮件地址的MX记录

    checkPort – 是否要检查端口25的电子邮件地址

    fullPattern – 正则表达式,用来验证电子邮件地址与名称的一部分

    pattern – 正则表达式,

    用来验证的属性值实例: array(‘username’, ‘email’, ‘message’=>’必须为电子邮箱’, ‘pattern’=>’/[a-z]/i’),

    ---------------------------------------------------------

    5、CUrlValidator – url验证属性:

    allowEmpty – 是否为空

    defaultScheme – 默认的URI方案

    pattern – 正则表达式

    validSchemes – 清单应视为有效的URI计划。

    实例:

    array(‘username’, ‘url’, ‘message’=>’must url’),

    array(‘username’, ‘url’, ‘defaultScheme’=>’http://www.baidu.com’),

    --------------------------------------------------------

    6、CUniqueValidator – 唯一性验证属性:

    allowEmpty – 是否为空

    attributeName – 属性名称

    caseSensitive – 区分大小写

    className – 类名

    criteria – 额外的查询条件

    实例:

    array(‘username’, ‘unique’, ‘message’=>’该记录存在’),

    array(‘username’, ‘unique’, ‘caseSensitive’=>false, ‘message’=>’该记录存在’),

    -----------------------------------------------------

    7、CCompareValidator – 比较验证属性:

    allowEmpty – 是否为空

    compareAttribute – 需要比较的属性

    compareValue -比较的值

    operator – 比较运算符

    strict – 严格验证(值和类型都要相等)

    实例: // 与某个值比较 array(‘username’, ‘compare’, ‘compareValue’=>’10′, ‘operator’=>’>’, ‘message’=>’必须大于10′),

    // 与某个提交的属性比较 array(‘username’, ‘compare’, ‘compareAttribute’=& gt;’password’, ‘operator’=>’>’, ‘message’=>’必须大于password’),

    ----------------------------------------------------

    8、CStringValidator – 字符串验证属性:

    allowEmpty – 是否为空

    encoding – 编码

    is – 确切的长度

    max – 最大长度

    min – 最小长度

    tooLong – 定义值太大的错误

    tooShort – 定义最小长度的错误

    实例: array(‘username’, ‘length’, ‘max’=>10, ‘min’=>5, ‘tooLong’=>’太长了’, ‘tooShort’=>’太短了’),

    array(‘username’, ‘length’, ‘is’=>5, ‘message’=>’长度必须为5′),

    ----------------------------------------------------

    9、CRangeValidator – 在某个范围内属性:

    allowEmpty – 是否为空

    not – 是否反转的验证逻辑。

    range – array范围

    strict – 严格验证(类型和值都要一样)

    实例: array(‘username’, ‘in’, ‘range’=>array(1,2,3,4,5), ‘message’=>’must in 1 2 3 4 5′),

    array(‘username’, ‘in’, ‘not’=>true, ‘range’=>array(1,2,3,4,5), ‘message’=>’must not in 1 2 3 4 5′),

    -----------------------------------------------------

    10、CNumberValidator – 数字验证属性:

    allowEmpty – 是否为空

    integerOnly – 整数

    integerPattern – 正则表达式匹配整数

    max – 最大值

    min – 最小值

    numberPattern – 匹配号码

    tooBig – 值太大时的错误提示

    tooSmall – 值太小时的错误提示

    实例: array(‘username’, ‘numerical’, ‘integerOnly’=>true, ‘message’=>’must be int’),

    array(‘username’, ‘numerical’, ‘integerOnly’=>true, ‘message’=>’must be int’, ‘max’=>100, ‘min’=>10, ‘tooBig’=>’is too big’, ‘tooSmall’=>’is too small’),

    ------------------------------------------------------

    11、CCaptchaValidator – 验证码验证属性:

    allowEmpty – 是否为空

    caseSensitive – 区分大小写

    ----------------------------------------------------------

    12、CTypeValidator – 类型验证属性:

    allowEmpty – 是否为空

    dateFormat – 日期应遵循的格式模式(‘MM/dd/yyyy’)

    datetimeFormat – 日期时间应遵循的格式模式(‘MM/dd/yyyy hh:mm’)

    timeFormat – 时间应遵循的格式模式(‘hh:mm’)

    type – 类型 ‘string’, ‘integer’, ‘float’, ‘array’, ‘date’, ‘time’ and ‘datetime’

    实例: array(‘username’, ‘type’, ‘dateFormat’=>’MM/dd/yyyy’, ‘type’=>’date’),

    ---------------------------------------------------------

    13、CFileValidator – 文件验证属性:

    allowEmpty – 是否为空

    maxFiles – 最大文件数

    maxSize – 文件的最大值

    minSize – 最小值

    tooLarge – 太大时的错误信息

    tooMany – 太多时的错误信息

    tooSmall – 太小时的错误信息

    types – 允许的文件扩展名

    wrongType – 扩展名错误时给出的错误信息

    ---------------------------------------------------------

    14、CDefaultValueValidator – 默认值属性:

    setOnEmpty – 设置为空

    value – 默认值

    实例: array(‘username’, ‘default’, ‘setOnEmpty’=>true, ‘value’=>’lh’),

    ---------------------------------------------------------

    15、CExistValidator – 是否存在属性:

    allowEmpty = 是否为空

    attributeName – 属性名称

    className – 类名

    criteria – 标准

    ------------------------------------------------------------

    16、CBooleanValidator – 布尔类型验证属性:

    allowEmpty – 是否为空

    falseValue – 错误状态的值

    strict – 严格验证

    trueValue – 真实状态的值

    实例: array(‘username’, ‘boolean’, ‘trueValue’=>1, ‘falseValue’=>-1, ‘message’=>’the value must be 1 or -1′),

    -----------------------------------------------------------------

    17、CDateValidator – 日期验证属性:

    allowEmpty – 是否为空

    format – 日期值应遵循的格式模式

    timestampAttribute – 接收解析结果的属性名称

    实例: array(‘username’, ‘date’, ‘format’=>’MM-dd-yyyy’,’message’=>’must be MM-dd-yyyy’),


    注:本文由王智磊(王大宝儿)整理编写,也参考借鉴了很多大神的笔记,分享代码,分享成功,欢迎各位交流和转载,转载请注明出处(博客园:王大宝儿)http://www.cnblogs.com/wangzhilei/

  • 相关阅读:
    aa
    MySQL5.8下载及安装——免安装版
    eclipse中修改项目名
    利用kibana学习 elasticsearch restful api (DSL)
    https://www.cnblogs.com/shwee/p/9084535.html
    springboot+mybatis实现动态切换数据源
    docker-machine命令安装
    Docker 安装 RabbitMq
    yum 找不到程序,yum更换国内阿里源
    CentOS安装etcd和flannel实现Docker跨物理机通信
  • 原文地址:https://www.cnblogs.com/wangzhilei/p/6529989.html
Copyright © 2020-2023  润新知