# 校验插件

校验插件@sula/plugin-form-validator扩展了表单校验中validator的能力,提供更便捷的写法

# API

# type

  • 类型: string | (ctx,config) => Promise
  • 默认值: -

校验类型,可配置类型见下方插件介绍,当没有同级属性时,type支持配置在validator属性上。自定义插件查看插件规范

注意

自定义插件必须返回Promise

示例:

rules: [
  {
    validator: {
      type: 'whitespace',
    }
  }
]

// 等价于
rules: [
  {
    validator: 'whitespace',
  }
]

类方式定义插件:

class ValidateRender {
  key = "custom-validator";

  apply(api) {
    api.validatorType("custom::validator", (ctx, config) => {
      const { form, value } = ctx;
      if (form.getFieldValue('sula') !== value) {
        return Promise.reject('Must be the same with Sula');
      }
      return Promise.resolve();
    });
  }
}

// 插件引入
<Form
  plugins={[new ValidateRender()]}
/>

函数方式定义插件:

function validateRender(api) {
  api.validatorType('custom::validator', (ctx) => {
    const { form, value } = ctx;
    if (form.getFieldValue('sula') !== value) {
      return Promise.reject('Must be the same with Sula');
    }
    return Promise.resolve();
  })
}

// 插件引入
<Form
  plugins={[validateRender]}
/>

# 插件介绍

# whitespace

检验输入字符串中不存在空格

示例:

rules: [
  { validator: 'whitespace' }
]

# match

检验输入字符串中包含字符串

参数 说明 类型
startsWith 参数字符串是否在原字符串的头部 string
endsWith 参数字符串是否在原字符串的尾部 string
includes 是否找到了参数字符串 string

示例:

rules: [
  {
    validator: {
      type: 'match',
      startsWith: 'sula', // 必须以sula开头
    }
  }
]
Last Updated: 2019/12/5 上午10:35:31