微擎表单验证

授权协议 Apache
开发语言 PHP
所属分类 jQuery 插件、 jQuery表单及相关
软件类型 开源软件
地区 国产
投 递 者 郤坚诚
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

微擎表单验证是一个让你的表单验证更为方便,快捷,安全的扩展,满足你的一切验证需求。

中文 | English

目录

安装

使用composer命令

composer require w7/engine-validate

完整文档查看完整文档

简单验证

支持简单定义一个验证器并进行验证:

try {
    $data = Validate::make([
        'user' => 'required|email',
        'pass' => 'required|lengthBetween:6,16',
    ], [
        'user.required'      => '请输入用户名',
        'user.email'         => '用户名格式错误',
        'pass.required'      => '请输入密码',
        'pass.lengthBetween' => '密码长度为6~16位',
    ])->check($data);
} catch (ValidateException $e) {
    echo $e->getMessage();
}

如果验证通过,则返回所有通过验证的值,如未通过,则抛出一个W7\\Validate\\Exception\\ValidateException异常

验证器定义

为具体的验证场景或者数据表单定义验证器类,我们需要继承W7\\Validate\\Validate类,然后实例化后直接调用验证类的check方法即可完成验证,下面是一个例子:

我们定义一个LoginValidate验证器类用于登录的验证。

class LoginValidate extends Validate
{
    protected $rule = [
        'user' => 'required|email',
        'pass' => 'required|digits_between:6,16',
    ];
    
    protected $message = [
        'user.required'       => '请输入用户名',
        'user.email'          => '用户名格式错误',
        'pass.required'       => '请输入密码',
        'pass.digits_between' => '密码长度为6~16位',
    ];
}

类属性定义的错误消息,优先级要高于自定义规则中的默认回复,高于自定义规则方法返回的错误

数据验证

$data = [
    'user' => '123@qq.com',
    'pass' => ''
];
$validate = new LoginValidate();
$validate->check($data);

此时会抛出一个W7\\Validate\\Exception\\ValidateException异常,message为请输入密码

$data = [
    'user' => '123@qq.com',
    'pass' => '123456'
];
$validate = new LoginValidate();
$data = $validate->check($data);

验证成功,并返回通过验证的值,返回的值为数组类型

验证数组

验证表单的输入为数组的字段也不难。你可以使用 「点」方法来验证数组中的属性。例如,如果传入的 HTTP 请求中包含search[keyword]字段, 可以如下验证:

protected $rule = [
    'search.order'   => 'numeric|between:1,2',
    'search.keyword' => 'chsAlphaNum',
    'search.recycle' => 'boolean',
];

你也可以验证数组中的每个元素。例如,要验证指定数组输入字段中的每一个 id 是唯一的,可以这么做:

protected $rule = [
    'search.*.id' => 'numeric|unique:account'
];

数组规则的错误消息的定义也一样

protected $message = [
    'search.order.numeric'       => '排序参数错误',
    'search.order.between'       => '排序参数错误',
    'search.keyword.chsAlphaNum' => '关键词只能包含中文,字母,数字',
    'search.recycle.boolean'     => '参数错误:recycle',
];

验证器类属性

$rule

用户定义验证器的验证规则,也可以通过setRules方法来进行设置,此方法为叠加,如果参数为null则为清空全部规则

// 类中定义
protected $rule = [
    'user' => 'required'
];

// 使用方法定义
$v->setRules([
    'user' => 'required'
]);

$message

用户定义验证器的错误信息,也可以通过setMessages方法来进行设置,此方法为叠加,如果参数为null则为清空全部错误消息

// 类中定义
protected $message = [
    'user.required' => '账号必须填写'
];

// 使用方法定义
$v->setMessages([
    'user.required' => '账号必须填写'
]);

$scene

定义验证场景的数据,用于指定验证场景对应的验证字段等,详细用法查看验证场景一节,同样也可以通过setScene方法来进行设置,此方法为叠加,如果参数为null则为清空全部验证场景

// 类中定义
protected $scene = [
    'login' => ['user', 'pass']
];

// 使用方法定义
$v->setScene([
    'login' => ['user', 'pass']
]);

$event

定义此验证器下的全局事件,详细用法查看事件一节

protected $event = [
    CheckSiteStatus::class
];

$customAttributes

定义验证字段的名称,也可以通过setCustomAttributes方法来进行设置,此方法为叠加,如果参数为null则为清空全部字段名称, 错误消息中的:attribute会使用下面的值对应的替换

protected $customAttributes = [
    'user' => '账号',
    'pass' => '密码'
];

$default

定义字段的默认值

protected $default = [
    'name' => '张三'
];

关于默认值的详情请查看默认值一节

$filter

用于数据验证后处理数据

protected $filter = [
    'name' => 'trim'
];

关于过滤器的详情请查看过滤器一节

$ruleMessage

类方法规则的错误信息

 protected $ruleMessage = [
    ':attribute的值只能具有中文'
];

点击查看示例

$filled

所有验证的字段在存在时不能为空,如果此属性值为true,所有规则会自动增加filled规则,默认为true

当出现以下情况时,不会自动添加filled规则

  • 验证规则中存在filled, nullable, accepted, present,required, required_if, required_unless, required_with,required_with_all, required_without, required_without_all规则
  • 验证规则存在extendImplicit定义的规则
  • 验证规则存在extendImplicitRule定义的规则
  • 验证规则实现了Itwmw\\Validation\\Support\\Interfaces\\ImplicitRule标记接口
protected bool $filled = true;

$regex

预定义正则表达式验证规则,详情查看正则表达式规则

protected $regex = [
    'number' => '/^\\d+$/'
];
 相关资料
  • 温馨提示:该项目已开源,商业用途需购买授权。 微擎是一款免费开源的微信公众号管理系统,基于目前最流行的WEB2.0架构(php+mysql),支持在线升级和安装模块及模板,拥有良好的开发框架、成熟稳定的技术解决方案、活跃的第三方开发者及开发团队,依托微擎开放的生态系统,提供丰富的扩展功能。 运行环境 IIS/Apache/Nginx、PHP >=5.3、MySQL>=5.0 运行微擎系统必须保证环

  • 本文向大家介绍微信小程序表单验证WxValidate的使用,包括了微信小程序表单验证WxValidate的使用的使用技巧和注意事项,需要的朋友参考一下 效果图GIF git地址:WxValidate 使用 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • CodeIgniter 提供了一个全面的表单验证和数据预处理类以帮助缩减你所写的代码。 概述 表单验证指南 表单 成功页面 控制器 设置验证规则 使用一个数组设置验证规则 级联规则(Cascading Rules) 预处理数据(Prepping Data) 重新填充表单(Re-populating the Form) 回调 设置错误信息 更改错误定界符 翻译表单域名字 独立显示错误 将一系列验证规

  • 表单请求验证类 必须 使用 表单请求 - FormRequest 类 来处理控制器里的表单验证。 验证类的 authorize 绝不 使用 authorize() 方法来做用户授权,用户授权我们会单独使用 Policy 授权策略 来实现。 使用基类 所有 FormRequest 表验证类 必须 继承 app/Http/Requests/Request.php 基类。基类文件如下: <?php n

  • pre { white-space: pre-wrap; } 本教程将向您展示如何验证一个表单。easyui 框架提供一个 validatebox 插件来验证一个表单。在本教程中,我们将创建一个联系表单,并应用 validatebox 插件来验证表单。然后您可以根据自己的需求来调整这个表单。 创建表单(form) 让我们创建一个简单的联系表单,带有 name、email、subject 和 mes

  • 主要内容:PHP 表单验证,文本字段,单选按钮,表单元素,PHP表单中需引起注重的地方?,如何避免 $_SERVER["PHP_SELF"] 被利用?,使用 PHP 验证表单数据,实例本章节我们将介绍如何使用PHP验证客户端提交的表单数据。 PHP 表单验证 在处理PHP表单时我们需要考虑安全性。 本章节我们将展示PHP表单数据安全处理,为了防止黑客及垃圾信息我们需要对表单进行数据安全验证。 在本章节介绍的HTML表单中包含以下输入字段: 必须与可选文本字段,单选按钮,及提交按钮: 查看代码 »