# 验证器
实现了基础的嵌套验证功能和原子化验证功能,常用于嵌套验证时使用。
# 概念说明
# 属性
组件通用属性请参见组件通用说明。
# 主要属性
- 标签:用于提示消息的合成。
- 规则:验证规则。简写格式为字符串类型,完整格式或混合格式为数组类型,详见验证规则。
- 提示信息:默认提示消息。
- 静默:验证时是否静默。可选值:
message
表示只静默消息提示,all
同时静默消息提示和红框提示。 - 忽略验证:忽略验证。
- 验证辅助对象:验证辅助对象。
- 修改验证值:临时修改验证值。
- 值预处理:验证前对值进行预处理。
- 手动验证:是否采取手动验证。如果为
true
,则验证器。 将不会在监听到子组件的input
、change
和blur
事件后进行相应的验证。 - 出错信息在页面的位置:设置添加到哪个元素。可选值:
body
表示添加到 document.body,reference
表示添加到参考元素中。当父级有overflow:hidden而又需要展示出错信息,可以设置为body。 - 出错信息展示位置: 提示信息显示位置。
# 事件
验证器不支持鼠标事件
验证器组件支持如下事件:
- 验证后
- 失去焦点验证通过后
- 失去焦点验证不通过后
Param | Type | Description |
---|---|---|
$event | object | 自定义事件对象 |
$event.value | any | 当前校验值 |
$event.trigger | string | 本次验证的触发方式 |
$event.valid | boolean | 验证是否通过 |
$event.touched | boolean | 用户是否触碰 |
$event.dirty | boolean | 用户是否修改值 |
$event.firstError | string | 第一个错误提示消息 |
# 样式
组件通用样式请参见组件通用说明。
# 验证规则
系统内置必填、字符、手机号、邮箱等常用验证规则,用户也可以选择
pattern
,使用自定义的正则表达式来自定义规则。在编辑实体时,若字段设置为必填、或有最大长度、最小长度,拖拽实体生成表单会自动添加验证规则。若不需要使用验证规则,可开启忽略验证。
# 验证规则一览表
分组 | 验证项 | 参数 | 参数类型 | 默认值 | 参数说明 | 验证规则说明 |
---|---|---|---|---|---|---|
常用 | required | 必填,空值指''、undefined、null | ||||
filled | 必填,在required基础上,字符串不能全为空格 | |||||
mobile | locale | 字符串|字符串集合 | zh-CN | 所在地区,例如zh-CN,ja-JP等,可以是一个字符串或字符串集合,为空匹配所有地区 | 输入内容为合法手机号 locale:所在地区,例如zh-CN,ja-JP等,可以是一个字符串或字符串集合,为空匹配所有地区 strict:是否检验国家代号。如果为true,则必须以+和国家码开头 | |
strict | 布尔 | FALSE | 是否检验国家代号。如果为true,则必须以+和国家码开头 | |||
校验邮箱格式,必须为正确的邮箱 | ||||||
maxLength | max | 整数 | 最大长度 | 长度不得超过指定数字;字符串、集合长度均可比较 | ||
max | max | 数字|字符串|日期 | 可取到的最大值 | 不得大于指定的值;数字、字符串、日期均可比较 | ||
range | min | 数字|字符串|日期 | 可取到的最小值 | 必须在指定值范围内;数字、字符串、日期均可比较 | ||
max | 数字|字符串|日期 | 可取到的最大值 | ||||
string | 必须为字符串类型 | |||||
number | 必须为数字类型 | |||||
integer | 必须为整数 | |||||
pattern | re | 字符串 | 正则表达式 | 根据正则表达式判断 | ||
unique | arr | List集合 | 验证List集合中是否包含输入内容 | 验证输入框的内容是否包含在参数arr中,若包含则提示:***已存在,专用于判重 | ||
空值判断 | required | 必填,空值指''、undefined、null | ||||
filled | 必填,在required基础上,字符串不能全为空格 | |||||
notEmpty | 集合不能为空,支持字符串比较 | |||||
empty | 必须为空,支持字符串比较 | |||||
范围判断 | minLength | min | 整数 | 最小长度 | 不得少于指定字符数;字符串、集合长度均可比较 | |
maxLength | max | 整数 | 最大长度 | 不得超过指定字符数;字符串、集合长度均可比较 | ||
rangeLength | min | 整数 | 最小长度 | 字符数必须在指定范围内;字符串、集合长度均可比较 | ||
max | 整数 | 最大长度 | ||||
min | min | 数字|字符串|日期 | 可取到的最小值 | 不得小于指定的值;数字、字符串、日期均可比较 | ||
max | max | 数字|字符串|日期 | 可取到的最大值 | 不得大于指定的值;数字、字符串、日期均可比较 | ||
range | min | 数字|字符串|日期 | 可取到的最小值 | 必须在指定值范围内;数字、字符串、日期均可比较 | ||
max | 数字|字符串|日期 | 可取到的最大值 | ||||
相等或包含判断 | is | arg | 任意类型 | 必须与arg相同,使用===比较 | ||
isNot | arg | 任意类型 | 必须与arg不同 | |||
equals | arg | 任意类型 | 必须与arg相等 | |||
notEquals | arg | 任意类型 | 必须与arg不相等 | |||
confirmed | arg | 任意类型 | 验证逻辑同equals,错误信息专用于密码的二次确认 | |||
includes | args | List集合 | 验证必须包含args中取值 | 验证值为List集合,输入和失焦时验证,必须包含List集合中的项 | ||
excludes | args | List集合 | 验证不能包含args中取值 | 验证值为List集合,输入和失焦时验证,不包含参数中的项 | ||
included | args | List集合 | 验证必须包含args中取值 | 验证值为单项取值,输入和失焦时验证,必须为参数中的某一个值 | ||
excluded | args | List集合 | 验证不能包含args中取值 | 验证值为单项取值,输入和失焦时验证,不能为参数中的任意一个值 | ||
unique | arr | List集合 | 验证List集合中是否包含输入内容 | 验证输入框的内容是否包含在参数arr中,若包含则提示:***已存在,专用于判重 | ||
noDuplicates | 验证项集合内不能重复 | |||||
类型判断 | string | 必须为字符串类型 | ||||
number | 必须为数字类型 | |||||
numeric | noSymbols | 布尔 | 如果为True,不能包含+,-,.等符号 | 必须为数字,noSymbols为True,不能包含+,-,.等符号 | ||
integer | 必须为整数 | |||||
decimal | force | 布尔 | 如果为true只允许小数 | 整数或小数;force为true只允许小数;digits设置小数位数范围,格式为1,3。默认为1, | ||
digits | 字符串 | 设置小数位数范围,格式如:1,3。默认为1, | ||||
boolean | 必须为布尔类型 | |||||
function | 必须为函数 | |||||
array | 必须为数组 | |||||
object | 必须为对象 | |||||
plainObject | 必须为简单对象 | |||||
字母数字-_判断 | alpha | 只能为字母 | ||||
alphaNum | 只能为字母或数字 | |||||
alphaDash | 必须由字母或下划线组成 | |||||
alphaNumDash | 必须由字母、数字或下划线组成 | |||||
alphaSpaces | 必须由字母或空格组成 | |||||
lowerCase | 不能出现大写字母 | |||||
upperCase | 不能出现小写字母 | |||||
without-- | 不能连续出现中划线 | |||||
without__ | 不能连续出现下划线 | |||||
特定场景判断 | 必须为正确的邮箱 | |||||
ip | 必须为正确的IP | |||||
port | 必须为正确的端口 | |||||
halfWidth | 需要输入半角字符 | |||||
fullWidth | 必须输入全角字符 | |||||
macAddress | 必须输入正确的 MAC 地址 | |||||
ascii | 必须输入ascii字符 | |||||
base64 | 必须输入base64编码 | |||||
byteLength | min | 整数 | 最小字节长度 | 输入字符串的字节长度范围限制 | ||
max | 整数 | 最大字节长度 | ||||
dataURI | 必须输入dataURI 编码 | |||||
divisibleBy | divisor | 整数 | 输入数字能被divisor整除 | 输入数字能被divisor整除 | ||
hash | algorithm | 字符串 | 算法名称,如md5 | 输入编码符合algorithm哈希算法,算法名称,支持md4、md5、sha1、sha256、sha384、sha512、ripemd128、ripemd160、tiger128、tiger160、tiger192、crc32以及crc32b | ||
md5 | 输入编码符合md5算法 | |||||
hex | 输入数字是十六进制 | |||||
hexColor | 输入字符串是十六进制颜色码 | |||||
creditCard | 输入是合法信用卡号 | |||||
fqdn | 输入合法的全限定域名 | |||||
ipOrFQDN | 输入内容必须是一个合法IP或全限定域名 | |||||
ipRange | version | 整数 | IP版本,接受4或6 | 输入内容必须是正确的IP段,如130.5.5.25/24 | ||
isbn | version | 整数 | ISBN版本,接受10或13 | 输入内容是一个合法的国际标准书号(ISBN),version:ISBN版本,接受10或13 | ||
issn | 输入内容是一个合法的国际标准连续出版物号(ISSN) | |||||
isin | 输入内容是一个合法的国际证券识别码(ISIN) | |||||
iso8601 | strict | 布尔 | 是否检测闰年日期,如果为true,则2019-02-29属于非法日期 | 输入内容为合法的ISO8601日期;strict:是否检测闰年日期,若strict为true,则2019-02-29属于非法日期 | ||
iso31661Alpha2 | 输入内容是一个合法的ISO-31661 Alpha-2国家代码 | |||||
iso31661Alpha3 | 输入内容是一个合法的ISO-31661 Alpha-3国家代码 | |||||
json | 输入字符串可以被解析为JSON格式 | |||||
jwt | 输入字符串是合法的JSON Web Token | |||||
latLong | 输入字符串为合法的经纬度坐标 | |||||
mobile | locale | 字符串|字符串集合 | zh-CN | 所在地区,例如zh-CN,ja-JP等,可以是一个字符串或字符串集合,为空匹配所有地区 | 输入内容为合法手机号 locale:所在地区,例如zh-CN,ja-JP等,可以是一个字符串或集合,为空匹配所有地区 strict:是否检验国家代号。如果为true,则必须以+和国家码开头 | |
strict | 布尔 | FALSE | 是否检验国家代号。如果为true,则必须以+和国家码开头 | |||
mongoid | 输入字符串为合法的MongoDB对象的ID | |||||
postalCode | locale | 字符串|字符串集合 | CN | 所在地区,例如CH,JP等 | 输入字符串为合法的邮政编码 locale:所在地区,例如CH,JP等 | |
url | 输入字符串为合法的URL格式,如http://aa.bb | |||||
uuid | version | 整数 | 采用的UUID版本,接受3,4,5,不填默认匹配所有版本 | 输入字符串为合法的UUID version:采用的UUID版本,接受3,4,5,不填默认匹配所有版本 | ||
chinese | 输入字符串为合法的中文内容 | |||||
正则判断 | pattern | re | 字符串 | 正则表达式 | 根据正则表达式判断 | |
^az | 以小写字母开头 | |||||
^az09 | 以小写字母或数字开头 | |||||
^az09_ | 以小写字母、数字或下划线开头 | |||||
^azAZ | 以字母开头 | |||||
^azAZ09 | 以字母或数字开头 | |||||
^azAZ09_ | 以字母数字或下划线开头 | |||||
az09$ | 以小写字母或数字结尾 | |||||
azAZ09$ | 以字母或数字结尾 | |||||
^09$ | 以数字组成 | |||||
^az09$ | 以小写字母或数字组成 | |||||
^az09-$ | 以小写字母、数字或中划线组成 | |||||
^az09-.$ | 以小写字母,数字,-或.组成 | |||||
^azAZ09$ | 以字母或数字组成 | |||||
^azAZ09-$ | 以字母,数字,-组成 | |||||
^azAZ09_$ | 以字母、数字、下划线组成 | |||||
^azAZ09-_$ | 以字母、数字、"-"或"_"组成 | |||||
^az09-_$ | 以字母、数字、-或下划线组成 |
# 示例
一个用户名输入框的验证包含以下规则:
- 必须输入用户名
- 以字母开头,实时验证
- 字母、数字或中划线组成
- 以字母或数字结尾
- 不得少于4个字符
1、点击表单项的‘规则’
2、依次添加规则