# 验证器

实现了基础的嵌套验证功能和原子化验证功能,常用于嵌套验证时使用。

# 概念说明

# 属性

组件通用属性请参见组件通用说明

# 主要属性

  • 标签:用于提示消息的合成。
  • 规则:验证规则。简写格式为字符串类型,完整格式或混合格式为数组类型,详见验证规则
  • 提示信息:默认提示消息。
  • 静默:验证时是否静默。可选值:message表示只静默消息提示,all同时静默消息提示和红框提示。
  • 忽略验证:忽略验证。
  • 验证辅助对象:验证辅助对象。
  • 修改验证值:临时修改验证值。
  • 值预处理:验证前对值进行预处理。
  • 手动验证:是否采取手动验证。如果为true,则验证器。 将不会在监听到子组件的inputchangeblur事件后进行相应的验证。
  • 出错信息在页面的位置:设置添加到哪个元素。可选值: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,则必须以+和国家码开头
email 校验邮箱格式,必须为正确的邮箱
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__ 不能连续出现下划线
特定场景判断 email 必须为正确的邮箱
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、点击表单项的‘规则’ image

2、依次添加规则

image

image

image

image

image

上次更新: 2023年06月29日