# 验证器
实现了基础的嵌套验证功能和原子化验证功能,常用于嵌套验证时使用。
# 概念说明
# 属性
组件通用属性请参见组件通用说明。
# 主要属性
- 标签:用于提示消息的合成。
- 规则:验证规则。简写格式为字符串类型,完整格式或混合格式为数组类型,详见验证规则。
- 提示信息:默认提示消息。
- 静默:验证时是否静默。可选值:
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、依次添加规则




