返回

表单检验函数

src/utils/validate.js

// 检查数值
const checkNumber = (rule, value, callback) => {
    value===''||/^-?\d+(\.\d+)?$/.test(value) ? callback() : callback(new Error('必须是数字值'))
}

// 检查正整数
const positiveInt = (rule, value, callback) => {
   value  = +value;
   value>0 && Number.isInteger(value)?callback() : callback(new Error('必须为正整数'))
}

// 检查大于1
const great1 = (rule, value, callback) => {
    +value >= 1 ? callback() : callback(new Error('充值金额不少于1元'))
}

// 检查大于0
const great0 = (rule, value, callback) => {
    +value >= 0 ? callback() : callback(new Error('扣款金额不少于0元'))
}

// 检查长度
const maxLength_200 = (rule, value, callback) => {
    value.length<=200 ? callback() : callback(new Error('长度不能超过200'))
}

// 检查区间
const between = function(min,max) {
    return (rule, value, callback) => {
        value  = +value;
        value<=max && value>=min? callback() : callback(new Error('长度不能超过200'))
    }
}

// 检查包含两种字符且不包括空格的密码
const password = (rule, value, callback) => {
    // let errorMessage = "";
    // let length = value.length;
    // if(length>16) {
    //     errorMessage = "密码不能超过16位";
    // }else if(length <6) {
    //     errorMessage = "密码不能少于6位";
    // }else if(value.includes(' ')) {
    //     errorMessage = "密码不能包含空格";
    // } else if(!/(?!^[0-9]{6,16}$)(?!^[a-zA-Z]{6,16}$)^.{6,16}$/.test(value)) {
    //     errorMessage = "密码不能只包含一种字符";
    // }
    // errorMessage!==''?callback(errorMessage):callback();
    /(?!^[^0-9a-zA-Z]{6,16}$)(?!^[0-9]{6,16}$)(?!^[a-zA-Z]{6,16}$)^[^(\s)]{6,16}$/.test(value)?callback():callback(new Error("密码必须为6-16位,字母、数字、字符至少两种组合,不包含空格"))   
}

export default {
    checkNumber,
    positiveInt,
    great0,
    great0_withdrawal,
    great1,
    maxLength_200,
    between,
    password
}