系统内置了一些常用的验证规则,可以完成大部分场景的验证需求:

WARNING

验证规则严格区分大小写

# 格式验证类

require

验证某个字段必须,例如:

'name':'require'

警告

如果验证规则没有添加require就表示没有值的话不进行验证

number

验证某个字段的值是否为纯数字字符串,例如:

'num':'number'

mail

验证某个字段的值是否为mail地址,例如:

'mail':'mail'

array

验证某个字段的值是否为数组,例如:

'info':'array'

chs

验证某个字段的值只能是汉字,例如:

'name':'chs'

chsAlpha

验证某个字段的值只能是汉字、字母,例如:

'name':'chsAlpha'

chsAlphaNum

验证某个字段的值只能是汉字、字母和数字,例如:

'name':'chsAlphaNum'

alphaNum

验证某个字段的值是否为字母和数字,下划线_及破折号-,例如:

'name':'alphaNum'

chsDash

验证某个字段的值只能是汉字、字母、数字和下划线_及破折号-,例如:

'name':'chsDash'

mobile

验证某个字段的值是否为有效的手机,例如:

'mobile':'mobile'

idCard

验证某个字段的值是否为有效的身份证格式,例如:

'id_card':'idCard'

creaditCode

判断是否为有效的统一社会信用代码

'name' : 'creaditCode'

integer

通过正则方式来判断是否为有效的整数

'name' : 'integer'

decimal

通过正则方式来判断是否为有效的小数

'name' : 'decimal'

file

判断是否为有效的文件对象

'name' : 'file'

ipV4

判断是否IpV4

'name' : 'ipV4'

string

判断是否字符串类型

'name' : 'string'

url

判断是否为合法Url

'name' : 'url'

lower

判断字段是否为小写字母

'name' : 'lower'

upper

判断字段是否为大写字母

'name' : 'upper'

alpha

判断字段是否为纯字母

'name' : 'alpha'

amount

判断字段是否为金额格式,最多保留两位小数点

'name' : 'amount'

# 长度和区间验证类

in

验证某个字段的值是否在某个范围

'num':'in:1,2,3',

notIn

验证某个字段的值不在某个范围

'num':'notIn:1,2,3',

between

验证某个字段的值是否在某个区间,例如:

'num':'between:1,10'

notBetween

验证某个字段的值不在某个范围,例如:

'num' : 'notBetween:1,10'

length:num1,num2

验证某个字段的值的长度是否在某个范围,例如:

'name' : 'length:4,25'

或者指定长度

'name' : 'length:4'

提示

如果验证的数据是数组,则判断数组的长度。
如果验证的数据是数值,则把数值转为字符串进行判断

max:number

验证某个字段的值的最大长度,例如:

'name' : 'max:25'

提示

如果验证的数据是数组/对象,则判断数组的长度。
如果验证的数据是字符串,则判断文本长度 如果验证的数据为数值,则判断数值大小

min:number

验证某个字段的值的最小长度,例如:

'name' : 'min:5'

提示

如果验证的数据是数组/对象,则判断数组的长度。
如果验证的数据是字符串,则判断文本长度 如果验证的数据为数值,则判断数值大小

# 字段比较类

confirm

验证某个字段是否和另外一个字段的值一致,例如:

"user"       :  "require|confirm:reuser"

支持字段自动匹配验证规则,如useruser_confirm是自动相互验证的,只需要使用

"user"       :  "require|confirm"

会自动验证和user_confirm进行字段比较是否一致,反之亦然。

different

验证某个字段是否和另外一个字段的值不一致,例如:

'name' : 'require|different:account'

需知

eq,egt,gt,elt,lt均为数值比较

eq 或者 = 或者 same

验证是否等于某个值,例如:

'score' : 'eq:100'
'num' : '=:100'
'num' : 'same:100'

egt 或者 >=

验证是否大于等于某个值,例如:


'score' : 'egt:60'
'num' : '>=:100'

gt 或者 >

验证是否大于某个值,例如:

'score' : 'gt:60'
'num' : '>:100'

elt 或者 <=

验证是否小于等于某个值,例如:

'score' : 'elt:100'
'num' : '<=:100'

lt 或者 <

验证是否小于某个值,例如:

'score' : 'lt:100'
'num' : '<:100'

字段比较

验证对比其他字段大小(数值大小对比),例如:

'price' : 'lt:market_price'
'price' : '<:market_price'

字段比较类可判断对象内数据

使用半角点.来代表层次,不限制层级数

const userInfo = {
    'name'  :   'xieshao',
    'info'  :   {
        'age'   :   18
    }   
}

const rule = {
    "name" : 'require|eq:xieshao|<:info.age'
}