antd中表单校验正则使用方式

8 篇文章 0 订阅
  1. 类组件的结构(最外层需要先包裹一层语法糖)
const PersonManagement  = Form.create()(
  class extends React.Component{}
 )
 epxort default PersonManagement
  1. 从form中解构出需要的一些方法
const { getFieldDecorator } = this.props.form;
  1. 表单项的编写
<Form.Item label="姓名" >
  {getFieldDecorator("name", {
    rules: checkRules('null')
  })(
    <Input
      placeholder="请输入姓名"
      onChange={e =>
        this.inputOnChange("name", e.target.value)
      }
    />
  )}
</Form.Item>

这里的rules的值是一个对象,我是做了一遍封装(封装了几种常用的表单校验的方式)

export const checkRules = (type: string) => {
    switch(type) {
        case 'telPhone' :
            return ([{ 
                required: true, 
                pattern: /^1[34578]\d{9}$/,
                message: '手机号格式不正确'
              }])
        case 'idCard' :
            return ([{ 
                required: true, 
                pattern: /^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/,
                message: '身份证格式不正确',
            }])
        case 'creditCode' :
            return ([{
                required: true,
                message: '税号长度必须是18位',
                len: 18
            }])
        case 'null' :
            return ([{
                required: true,
                message: '你的输入为空',
            }])
        case 'number' :
            return ([{
                required: true,
                pattern: /^\+?[1-9][0-9]*$/,
                message: '请输入正确的数字'
            }])
        case 'name' :
            return ([{
                required: true,
                pattern: /^[\u2E80-\u9FFF]+$/,
                message: '请输入汉字姓名'
            }])
        default :
            return;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值