antd:form里的密码校验封装

// 校验密码
    validateToNextPassword = (rule, value, callback) => {
        const { form } = this.props;
        // 校验密码强度
        // 1. 必须同时包含大写字母、小写字母和数字,三种组合
        // 2. 长度在8-30之间
        const passwordReg = /^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).*$/;
        if (value) {
            if (!passwordReg.test(value)) {
                callback(intl.get('密码必须同时包含大写字母、小写字母和数字'));
            }
            if (value.length < 8 || value.length > 30) {
                callback(intl.get('密码长度8-30位'))
            }
        }
        callback();
    };
    // 确认密码
    compareToFirstPassword = (rule, value, callback) => {
        const { form } = this.props;
        if (value && value !== form.getFieldValue('passwordText')) {
            callback(intl.get('两次密码输入不一致!'));
        } else {
            callback();
        }
    };

 

posted @ 2020-06-11 14:03  a茶色  阅读(1743)  评论(0编辑  收藏  举报