'use strict'; /** * 表单验证规则 */ export default { required: { message: '该字段必填', check(v) { const type = typeof v; if (type === 'string') { return v !== ''; } else if (type === 'array') { return v.length > 0; } else if (type === 'boolean') { return v; } else if (type === 'number') { return true; return v !== 0; } else if (type === 'object') { return v !== null && v !== undefined; } else { return true; } } }, // 最小 min: { message: '超过最小限制', check(v, param) { return parseFloat(v) >= parseFloat(param) || v === ''; } }, // 最大 max: { message: '超过最小限制', check(v, param) { return parseFloat(v) <= parseFloat(param) || v === ''; } }, //只能数字、字母、下划线组合,下划线不能在开头或结尾 user: { message: '只能数字、字母、下划线组合,下划线不能在开头或结尾', check(v) { return /^(?!_)(?!.*?_$)(\w)*$/.test(v) || v === ''; } }, //身份证号 或者护照号 idCard: { message: '', check(v) { return /^([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]))$|(^[a-zA-Z]{2}\d{7}$|^[a-zA-Z]{1}\d{8}$)/.test(v) || v === ''; } }, // 手机号 mobile: { message: '手机号格式不正确', check(v) { return /^1[23456789]{1}[0-9]{9}$/.test(v) || v === ''; } }, //url地址 url: { message: 'url地址格式不正确', check(v) { return /^(?:(?:(?:https?|ftp):)?\/\/)(?:\S+(?::\S*)?@)?(?:(?!(?:10|127)(?:\.\d{1,3}){3})(?!(?:169\.254|192\.168)(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)(?:\.(?:[a-z\u00a1-\uffff0-9]-*)*[a-z\u00a1-\uffff0-9]+)*(?:\.(?:[a-z\u00a1-\uffff]{2,})).?)(?::\d{2,5})?(?:[/?#]\S*)?$/i.test(v) || v === ''; } }, //汉字 chinese: { message: '仅限汉字', check(v) { return /^[\u4e00-\u9fa5]*$/.test(v) || v === ''; } }, //数字 number: { message: '仅限数字', check(v) { return /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(v) || v === ''; } }, //数字或字母 alphaNum: { message: '仅限字母或数字', check(v) { return /^[A-Za-z0-9]+$/.test(v) || v === ''; } }, //整数 digits: { message: '仅限整数', check(v) { return /^\d+$/.test(v) || v === ''; } }, //范围长度 rangeLength: { message: '请输入指定范围长度', check(v, param) { let length = v.length; if (Array.isArray(param)) { return (length >= param[0] && length <= param[1]) || v === ''; } else { return length == param || v === ''; } } }, //范围 range: { message: '', check(v, param) { return (v >= param[0] && v <= param[1]) || v === ''; } }, //等于 equal: { message: '两次输入不一致', check(v, param) { return v == param || v === ''; } } };