UNPKG

zpw-vue-form

Version:

vue 表单系统

535 lines (534 loc) 16.1 kB
/** * @description 表单验证 * @module validate * @alias 表单验证 * @author pengwei.zhao * @copyright @2013-2020 pengwei.zhao. | pengwei.zhao版权所有 * @version 1.0.0 * @const{(Object.)} * @readonly */ const validate = { /** * @function notNull * @summary 验证字符串不能为空 * @param {Object} form - 表单实列 * @param {string} value - 表单值 * @param {requestCallback} callback - 回调是否成功 * @example notNull({ qid:"name", name:"姓名", type:"input-text", rule:"notNull", placeholder:"请输入姓名" * }); */ notNull(form, value, callback){ if(form.data.type == "input-address"){ form.data.validForm().then(res => { if(res){ callback(); } }); }else if (value == undefined||value == "" || (form.data.type == "input-date"&&value.length < 1) || (form.data.type == "input-text"&&(value+"").trim().length < 1) || (form.data.type == "input-checkbox"&&value.length < 1) ) { if(form.data.type == "input-radio"){ callback(new Error('请选择'+ rule.data.name)) }else{ callback(new Error(form.data.name + '不能为空')) } } else { callback() } }, /** * @function phone * @summary 验证手机号码 * @param {Object} form - 表单实列 * @param {string} value - 表单值 * @param {requestCallback} callback - 回调是否成功 * @example notNull({ qid:"name", name:"手机号", type:"input-phone", rule:"phone", placeholder:"请输入手机号" * }); */ phone(form, value, callback){ if (value&&!/^1[34578]\d{9}$/.test((value+"").trim()*1)) { callback(new Error(form.data.name + '不正确')) } else { callback() } }, /** * @function email * @summary 验证email * @param {Object} form - 表单实列 * @param {string} value - 表单值 * @param {requestCallback} callback - 回调是否成功 * @example notNull({ qid:"name", name:"email", type:"input-email", rule:"email", placeholder:"请输入email" * }); */ email(form, value, callback){ if (value&&!/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/.test((value+"").trim())) { callback(new Error(form.data.name + '不是正确的email格式')) } else { callback() } }, /** * @function number * @summary 验证是否为数字 * @param {Object} form - 表单实列 * @param {string} value - 表单值 * @param {requestCallback} callback - 回调是否成功 * @example notNull({ qid:"name", name:"数字", type:"input-number", rule:"number", placeholder:"请输入数字" * }); */ number(rule, value, callback){ if (!/^\d*(.?)(\d)*\d$/gi.test(value)) { callback(new Error(rule.data.name + '的值不是数字')) } else { callback() } }, /** * @function number4 * @summary 验证数值是否为4位 * @param {Object} form - 表单实列 * @param {string} value - 表单值 * @param {requestCallback} callback - 回调是否成功 * @example notNull({ qid:"name", name:"4位数字", type:"input-number", rule:"number4", placeholder:"请输入4位数字" * }); */ number4(rule, value, callback){ if (value.length != 4) { callback(new Error(rule.data.name + '的值不是4位')) } else { callback() } }, /** * @function number11 * @summary 验证数值是否为4位 * @param {Object} form - 表单实列 * @param {string} value - 表单值 * @param {requestCallback} callback - 回调是否成功 * @example notNull({ qid:"name", name:"11位数字", type:"input-number", rule:"number11", placeholder:"请输入11位数字" * }); */ number11(rule, value, callback){ if (value&&value != 11) { callback(new Error(rule.data.name + '的值不正确')) } else { callback() } }, /** * @function float * @summary 验证数值是否是浮点数 * @param {Object} form - 表单实列 * @param {string} value - 表单值 * @param {requestCallback} callback - 回调是否成功 * @example notNull({ qid:"name", name:"浮点数", type:"input-number", rule:"float", placeholder:"请输入浮点数" * }); */ float(rule, value, callback){ if (value&&!(/^(-?\d+)?(\.\d+)$/.test(value))) { callback(new Error(rule.data.name + '不是浮点数')) } else { callback() } }, /** * @function int * @summary 验证数值是否是整数 * @param {Object} form - 表单实列 * @param {string} value - 表单值 * @param {requestCallback} callback - 回调是否成功 * @example notNull({ qid:"name", name:"整数", type:"input-number", rule:"int", placeholder:"请输入整数" * }); */ int(rule, value, callback){ if (value&&!/^-?\d+$/.test(value)) { callback(new Error(rule.data.name + '不是整数')) } else { callback() } }, /** * @function http * @summary 验证数值是否是http(s)地址 * @param {Object} form - 表单实列 * @param {string} value - 表单值 * @param {requestCallback} callback - 回调是否成功 * @example notNull({ qid:"name", name:"http地址", type:"input-text", rule:"http", placeholder:"请输入http(s)地址" * }); */ http(rule, value, callback){ if (value&&!/^https+:\/\/./.test(value)) { callback(new Error(rule.data.name + '不是http(s)地址')) } else { callback() } }, /** * @function (0-+∞) * @summary 验证数值是否是大于0的数字 * @param {Object} form - 表单实列 * @param {string} value - 表单值 * @param {requestCallback} callback - 回调是否成功 * @example notNull({ qid:"name", name:"大于0的数字", type:"input-number", rule:"(0-+∞)", placeholder:"请输入大于0的数字" * }); */ "(0-+∞)"(rule, value, callback){ if (value&&!(!isNaN(value) && value > 0)) { callback(new Error(rule.data.name + '不是大于0的数字')) } else { callback() } }, /** * @function [1-1e5] * @summary 验证数值是否是大于等于1且小于等于10000的数 * @param {Object} form - 表单实列 * @param {string} value - 表单值 * @param {requestCallback} callback - 回调是否成功 * @example notNull({ qid:"name", name:"大于等于1且小于等于10000的数", type:"input-number", rule:"[1-1e5]", placeholder:"请输入大于等于1且小于等于10000的数" * }); */ "[1-1e5]"(rule, value, callback){ if (value&&!(1 <= value && value <= 10000)) { callback(new Error(rule.data.name + '不是大于等于1且小于等于10000的数')) } else { callback() } }, /** * @function [1-+10] * @summary 验证数值是否是大于等于1且小于等于10的数 * @param {Object} form - 表单实列 * @param {string} value - 表单值 * @param {requestCallback} callback - 回调是否成功 * @example notNull({ qid:"name", name:"大于等于1且小于等于10的数", type:"input-number", rule:"[1-+10]", placeholder:"请输入大于等于1且小于等于10的数" * }); */ "[1-+10]"(rule, value, callback){ if (value&&!(value >= 1 && value <= 10)) { callback(new Error(rule.data.name + '不是大于等于1且小于等于10的数')) } else { callback() } }, /** * @function [1-+5] * @summary 验证数值是否是大于等于1且小于等于5的数 * @param {Object} form - 表单实列 * @param {string} value - 表单值 * @param {requestCallback} callback - 回调是否成功 * @example notNull({ qid:"name", name:"大于等于1且小于等于5的数", type:"input-number", rule:"[1-+5]", placeholder:"请输入大于等于1且小于等于5的数" * }); */ "[1-+5]"(rule, value, callback){ if (value&&!(value >= 1 && value <= 5)) { callback(new Error(rule.data.name + '不是大于等于1且小于等于5的数')) } else { callback() } }, /** * @function [0-10] * @summary 验证数值是否是大于等于0且小于等于10的数 * @param {Object} form - 表单实列 * @param {string} value - 表单值 * @param {requestCallback} callback - 回调是否成功 * @example notNull({ qid:"name", name:"大于等于0且小于等于10的数", type:"input-number", rule:"[0-10]", placeholder:"请输入大于等于0且小于等于10的数" * }); */ "[0-10]"(rule, value, callback){ if (value&&!(value >= 0 && value <= 10)) { callback(new Error(rule.data.name + '不是大于等于0且小于等于10的数')) } else { callback() } }, /** * @function [0-1] * @summary 验证数值是否是0到1的数 * @param {Object} form - 表单实列 * @param {string} value - 表单值 * @param {requestCallback} callback - 回调是否成功 * @example notNull({ qid:"name", name:"0到1的数", type:"input-number", rule:"[0-1]", placeholder:"请输入0到1的数" * }); */ "[0-1]"(rule, value, callback){ if (value&&!/^[0-1]$|^0?\.[0-9]+$/.test(value)) { callback(new Error(rule.data.name + '不是0到1的数')) } else { callback() } }, /** * @function (0-1) * @summary 验证数值是否大于0小于1的数 * @param {Object} form - 表单实列 * @param {string} value - 表单值 * @param {requestCallback} callback - 回调是否成功 * @example notNull({ qid:"name", name:"大于0小于1的数", type:"input-number", rule:"(0-1)", placeholder:"请输入大于0小于1的数" * }); */ "(0-1)"(rule, value, callback){ if (!(0 < value && value < 1)) { callback(new Error(rule.data.name + '不是大于0小于1的数')) } else { callback() } }, /** * @function (0-+∞) * @summary 验证数值是否大于0小于1的数 * @param {Object} form - 表单实列 * @param {string} value - 表单值 * @param {requestCallback} callback - 回调是否成功 * @example notNull({ qid:"name", name:"大于0小于1的数", type:"input-number", rule:"(0-+∞)", placeholder:"请输入大于0小于1的数" * }); */ "(0-+∞)"(rule, value, callback){ if (value&&value <= 0) { callback(new Error(rule.data.name + '不是大于0的数')) } else { callback() } }, /** * @function [1-+∞) * @summary 验证数值是否大于或等于1的数 * @param {Object} form - 表单实列 * @param {string} value - 表单值 * @param {requestCallback} callback - 回调是否成功 * @example notNull({ qid:"name", name:"大于或等于1的数", type:"input-number", rule:"[1-+∞)", placeholder:"请输入大于或等于1的数" * }); */ "[1-+∞)"(rule, value, callback){ if (value&&value < 1) { callback(new Error(rule.data.name + '不是大于或等于1的数')) } else { callback() } }, /** * @function [0.5-1] * @summary 验证数值是否大于或等于0.5小于或等于1的数 * @param {Object} form - 表单实列 * @param {string} value - 表单值 * @param {requestCallback} callback - 回调是否成功 * @example notNull({ qid:"name", name:"大于或等于0.5小于或等于1的数", type:"input-number", rule:"[0.5-1]", placeholder:"请输入大于或等于0.5小于或等于1的数" * }); */ "[0.5-1]"(rule, value, callback){ if (!(0.5 <= value && value <= 1)) { callback(new Error(rule.data.name + '不是大于或等于0.5小于或等于1的数')) } else { callback() } }, /** * @function [0-+∞) * @summary 验证数值是否大于或等于0的数 * @param {Object} form - 表单实列 * @param {string} value - 表单值 * @param {requestCallback} callback - 回调是否成功 * @example notNull({ qid:"name", name:"大于或等于0的数", type:"input-number", rule:"[0-+∞)", placeholder:"请输入大于或等于0的数" * }); */ "[0-+∞)"(rule, value, callback){ if (value&&value < 0) { callback(new Error(rule.data.name + '不是大于或等于0的数')) } else { callback() } }, /** * @function [2-+∞) * @summary 验证数值是否大于或等于2的数 * @param {Object} form - 表单实列 * @param {string} value - 表单值 * @param {requestCallback} callback - 回调是否成功 * @example notNull({ qid:"name", name:"大于或等于2的数", type:"input-number", rule:"[2-+∞)", placeholder:"请输入大于或等于2的数" * }); */ "[2-+∞)"(rule, value, callback){ if (value&&value < 2) { callback(new Error(rule.data.name + '不是大于或等于2的数')) } else { callback() } }, /** * @function [-1-+∞) * @summary 验证数值是否大于或等于-1的数 * @param {Object} form - 表单实列 * @param {string} value - 表单值 * @param {requestCallback} callback - 回调是否成功 * @example notNull({ qid:"name", name:"大于或等于-1的数", type:"input-number", rule:"[-1-+∞)", placeholder:"请输入大于或等于-1的数" * }); */ "[-1-+∞)"(rule, value, callback){ if (value&&value < -1) { callback(new Error(rule.data.name + '不是大于或等于-1的数')) } else { callback() } }, /** * @function (0-0.5) * @summary 验证数值是否大于0小于0.5的数 * @param {Object} form - 表单实列 * @param {string} value - 表单值 * @param {requestCallback} callback - 回调是否成功 * @example notNull({ qid:"name", name:"大于0小于0.5的数", type:"input-number", rule:"(0-0.5)", placeholder:"请输入大于0小于0.5的数" * }); */ "(0-0.5)"(rule, value, callback){ if (value&&!(0 < value && value < 0.5)) { callback(new Error(rule.data.name + '不是大于0小于0.5的数')) } else { callback() } }, /** * @function [1e-5-1e5] * @summary 验证数值是否大于等于0.00001小于等于100000的数 * @param {Object} form - 表单实列 * @param {string} value - 表单值 * @param {requestCallback} callback - 回调是否成功 * @example notNull({ qid:"name", name:"大于等于0.00001小于等于100000的数", type:"input-number", rule:"[1e-5-1e5]", placeholder:"请输入大于等于0.00001小于等于100000的数" * }); */ "[1e-5-1e5]"(rule, value, callback){ if (value&&!(0.00001 <= value && value <= 100000)) { callback(new Error(rule.data.name + '不是大于等于0.00001小于等于100000的数')) } else { callback() } } } /** * @export validate */ export default validate;