Form自定义校验

       <Form.Item
            colon={false}
            {...formItemLayout}
            label={formatMessage({
              id: 'DataClassifyConfig.subtypeCode',
              defaultMessage: '子分类编码',
            })}
          >
            {getFieldDecorator('subtypeCode', {
              initialValue: dataSubType && dataSubType.subtypeCode,
              rules: [
                {
                  required: true,
                  message: formatMessage({
                    id: 'DataClassifyConfig.checkCode',
                    defaultMessage: '只能输入大小写英文、符号和数字',
                  }),
                },
                {
                  validator: (rule, value, callback) =>
                    this.handleValidator(rule, value, callback, dataSubType.subtypeCode),
                },
              ],
            })(
              <Input
                placeholder={formatMessage({
                  id: 'COMMON_ENTER_TIP',
                  defaultMessage: '请输入',
                })}
              />
            )}
          </Form.Item>

  

  handleValidator = (rule, value, callback, val) => {
    const { list } = this.props;
    const codeExp = /^[a-z0-9A-Z]$/;
    let isTrue = false;
    list.map(o => {
      if (o.subtypes.find(item => item.subtypeCode == value) !== undefined && val !== value) {
        isTrue = true;
      }
      return o;
    });
    if (isTrue) {
      callback(
        formatMessage({
          id: 'DataClassifyConfig.nameAlreadyExists',
          defaultMessage: '该名称已存在',
        })
      );
    } else if (!value.match(codeExp)) {
      callback(
        formatMessage({
          id: 'DataClassifyConfig.checkCode',
        })
      );
    } else if (escape(value).indexOf('%u') != -1) {
      callback(
        formatMessage({
          id: 'DataClassifyConfig.checkCode',
        })
      );
    } else if (!(value.indexOf(" ") == -1)) {
      callback(
        formatMessage({
          id: 'DataClassifyConfig.checkCode',
        })
      );
    } else {
      callback();
    }
  };

  

posted @ 2020-09-16 14:37  lipu1993  阅读(312)  评论(0)    收藏  举报