antd-form-rules

```bash yarn add antd-form-rules

Usage no npm install needed!

<script type="module">
  import antdFormRules from 'https://cdn.skypack.dev/antd-form-rules';
</script>

README

安装

yarn add antd-form-rules

# 或者

npm install antd-form-rules --save

使用

import { FormRules } from 'antd-form-rules';

getFieldDecorator('id', {
   rules: FormRules.withName('字段名').isRequired().create(),
});

方法介绍

withName(fileName: string)

规则必须先初始化才能做链式调用

FormRules.withName('字段');

create()

生成的规则由该方法统一转换为antd需要的格式

FormRules.withName('字段').create();

isRequired(onlyWhiteSpaceIsError = true)

通用方法,用于强调前一个规则是必填的,不能跳过。

FormRules.withName('字段')
    .string(1, 15).isRequired()
    .match(/\w+/).isRequired()
    .create();

FormRules.withName('字段').string().isRequired().create();

如果isRequired前面没有规则,那么会默认添加一个string()的规则

FormRules.withName('字段').isRequired().create();
// 等于
FormRules.withName('字段').string().isRequired().create();

string(min?: number, max?: number, message?: string)

字符串规则,可自定义长度

FormRules.withName('字段').string().create();
FormRules.withName('字段').string(1, 15).create();
FormRules.withName('字段').string(20).create();
FormRules.withName('字段').string(undefined, 20).create();

bool(message?: string)

布尔值规则,常用于Radio

array(message?: string)

数组规则

phone(message?: string)

国内11位手机号

number(min?: number, max?: number, message?: string)

数字,包括小数、整数、负数、正数

FormRules.withName('字段').number().create();
FormRules.withName('字段').number(0.01, 1).create();
FormRules.withName('字段').number(0).create();
FormRules.withName('字段').number(undefined, 5).create();

integer(min?: number, max?: number, message?: string)

只能是整数

FormRules.withName('字段').integer().create();
FormRules.withName('字段').integer(1).create();
FormRules.withName('字段').integer(1, 5).create();
FormRules.withName('字段').integer(undefined, 5).create();

email(message?: string)

邮箱号规则

match(pattern: RegExp, message?: string)

正则匹配

FormRules.withName('字段').match(/\w\s*\w/).isRequired().create();

url(message?: string)

超链接规则

callback(fn: Function)

自定义规则

FormRules.withName('字段').callback((value, field) => {
   if (value !== '孙悟空') {
       return new Error('这个是六耳猕猴');
   }
}).create();

identityCard(message?: string)

第二代身份证

withoutWhiteSpace(message?: string)

禁止包含空格

object(message?: string)

数据必须是对象。如时间控件返回的是moment的对象

append(obj)

如果以上规则都不能满足你,那么可以用这个append直接添加antd的原生规则。或者欢迎issue

import { FormRuleType } from 'antd-form-rules';

FormRules.withName('字段').string().append({ required: true, type: FormRuleType.object }).create();