表单检验函数
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
}