在规则使用时,需要注意,如果验证规则没有添加require
就表示没有值的话不进行验证该字段。
介绍
框架内置了一些常用的验证规则,可以完成大部分场景的验证需求,包括:
- 请求类
- 格式验证类
- 长度和区间验证类
- 字段比较类
- 内置正则表达验证
- 自定义规则
请求验证
规则名称 |
参数 |
示例 |
默认message |
说明 |
get |
|
|
必须是GET请求 |
|
post |
|
|
必须是POST请求 |
|
ajax |
|
|
必须是AJAX请求 |
|
jwt |
数据类型, 数据字段名 |
jwt:post, token |
Jwt校验不通过 |
Jwt校验,数据类型共支持:< code>get、< code>post、< code>raw、< code>head |
csrf |
数据类型, 数据字段名 |
csrf:post, token |
Csrf校验不通过 |
Csrf校验,数据类型共支持:< code>get、< code>post、< code>raw、< code>head |
格式验证类
规则名称 |
参数 |
示例 |
默认message |
说明 |
require |
|
|
{:preset}必填 |
使用empty 实现 |
accepted |
|
|
{:preset}必须是 yes、on、1、或 true |
常用于 用户协议 勾选判断 |
number |
|
|
{:preset}必须是纯数字 |
|
int |
|
|
{:preset}必须是整数 |
|
float |
|
|
{:preset}必须是浮点数字 |
|
bool |
|
|
{:preset}必须是布尔值 |
|
array |
|
|
{:preset}必须是数组 |
|
email |
|
|
{:preset}不是正确的邮箱格式 |
使用正则实现 |
mobile |
|
|
{:preset}不是正确的国内电话号码 |
|
phone |
|
|
{:preset}不是正确的手机号码 |
|
date |
|
|
{:preset}不是正确的日期格式 |
|
alpha |
|
|
{:preset}必须是纯字母 |
|
alphaNum |
|
|
{:preset}必须是字母或数字 |
|
alphaDash |
|
|
{:preset}必须是字母或数字、或下划线_及破折号- |
|
chs |
|
|
{:preset}必须是纯汉字 |
|
chsAlpha |
|
|
{:preset}必须是汉字或字母 |
|
chsAlphaNum |
|
|
{:preset}必须是汉字、字母或数字 |
|
cntrl |
|
|
{:preset}必须是控制字符(换行、缩进、空格) |
|
graph |
|
|
{:preset}必须是可打印字符(空格、换行除外) |
|
print |
|
|
{:preset}必须是可打印字符(包括空格) |
|
lower |
|
|
{:preset}必须是小写字母 |
|
upper |
|
|
{:preset}必须是大写字母 |
|
space |
|
|
{:preset}必须是空白字符(包括缩进,垂直制表符,换行符,回车和换页字符) |
|
xdigit |
|
|
{:preset}必须是十六进制字符串 |
|
url |
|
|
{:preset}必须是为有效的URL地址 |
|
ip |
|
|
{:preset}必须是为有效的IP地址 |
|
dateFormat |
日期格式 |
dateformat:Y-m-d |
{:preset}必须是 {0} 的日期格式 |
|
idCard |
|
|
{:preset}必须是有效的身份证格式 |
|
licensePlate |
|
|
{:preset}必须是国内有效的车牌号 |
|
macAddr |
|
|
{:preset}必须是有效的MAC地址 |
|
zip |
|
|
{:preset}必须是有效的邮政编码 |
|
长度和区间验证类
规则名称 |
参数 |
示例 |
默认message |
说明 |
in |
多个值用, 分隔 |
in:1,2,3,篮球,游泳 |
{:preset}必须是在 {0} 范围内 |
英文状态下的逗号 |
NotIn |
多个值用, 分隔 |
NotIn:1,2,3,篮球,游泳 |
{:preset}必须是不在 {0} 范围内 |
英文状态下的逗号 |
between |
数字A, 数字B |
between:1,100 |
{:preset}必须在 {0} - {1} 之间 |
|
notBetween |
数字A, 数字B |
notBetween:1,100 |
{:preset}必须不在 {0} - {1} 之间 |
|
min |
数字 |
min:100 |
{:preset}最小长度不能小于{0}个字符 |
|
max |
数字 |
max:100 |
{:preset}最大长度不能超过{0}个字符 |
|
after |
日期 |
after:2021-09-16 |
{:preset}必须是在 {0} 之后 |
|
before |
日期 |
before:2021-09-17 |
{:preset}必须是在 {0} 之前 |
|
expire |
日期A, 日期B |
expire:2021-09-10,2021-09-17 |
{:preset}必须是在 {0} 和 {1} 之间 |
注意,该规则是判断当前请求是否在日期范围内,而不是当前字段值 |
字段比较类
规则名称 |
参数 |
示例 |
默认message |
说明 |
confirm |
字段名 |
confirm:user.nick |
{:preset}必须和 {0} 相同 |
和当前请求中别的字段进行 等于 对比 |
different |
字段名 |
different:user.nick |
{:preset}必须和 {0} 不同 |
和当前请求中别的字段进行 不等于 对比 |
eq 或 = |
字段名 或 值 |
eq:user.nick 、=:10 |
{:preset}必须 等于 {0} |
|
neq 或 != |
字段名 或 值 |
neq:user.nick 、!=:10 |
{:preset}必须 不等于 {0} |
|
egt 或 >= |
字段名 或 值 |
egt:user.nick 、>=:10 |
{:preset}必须 大于等于 {0} |
|
gt 或 > |
字段名 或 值 |
gt:user.nick 、>:10 |
{:preset}必须 大于 {0} |
|
elt 或 <= |
字段名 或 值 |
elt:user.nick 、<=:10 |
{:preset}必须 小于等于 {0} |
|
lt 或 < |
字段名 或 值 |
lt:user.nick 、<:10 |
{:preset}必须 小于 {0} |
|
内置正则表达验证
规则名称 |
参数 |
示例 |
默认message |
说明 |
username |
长度min, 长度max |
username:5,12 |
{:preset}必须是字母开头,允许 {0}-{1}位,支持字母数字下划线组合 |
|
password |
长度min, 长度max |
password:5,12 |
{:preset}必须是包含字母数字,允许 {0}-{1}位 |
|