zpw-vue-forms
Version:
vue 表单系统
199 lines (198 loc) • 5.68 kB
JavaScript
/**
* 表单验证
*/
let validate = {
//不能为空
notNull(rule, value, callback){
if(rule.data.type == "input-address"){
rule.data.validForm().then(res => {
if(res){
callback();
}
});
}else if (value == undefined||value == "" ||
(rule.data.type == "input-date"&&value.length < 1) ||
(rule.data.type == "input-text"&&(value+"").trim().length < 1) ||
(rule.data.type == "input-checkbox"&&value.length < 1)
) {
if(rule.data.type == "input-radio"){
callback(new Error('请选择'+ rule.data.name))
}else{
callback(new Error(rule.data.name + '不能为空'))
}
} else {
callback()
}
},
phone(rule, value, callback){
if (value&&!/^1[34578]\d{9}$/.test((value+"").trim()*1)) {
callback(new Error(rule.data.name + '不正确'))
} else {
callback()
}
},
email(rule, value, callback){
if (value&&!/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/.test((value+"").trim())) {
callback(new Error(rule.data.name + '不是正确的email格式'))
} else {
callback()
}
},
number(rule, value, callback){
if (!/^\d*(.?)(\d)*\d$/gi.test(value)) {
callback(new Error(rule.data.name + '的值不是数字'))
} else {
callback()
}
},
number4(rule, value, callback){
if (value.length != 4) {
callback(new Error(rule.data.name + '的值不是4位'))
} else {
callback()
}
},
number11(rule, value, callback){
if (value&&value != 11) {
callback(new Error(rule.data.name + '的值不正确'))
} else {
callback()
}
},
idCardLastFour(rule, value, callback){
if (value.length != 4) {
callback(new Error(rule.data.name + '的值不是4位'))
}else if(!/^\d{3}\w/gi.test(value)){
callback(new Error('请输入正确的'+rule.data.name));
} else {
callback()
}
},
float(rule, value, callback){
if (value&&!(/^(-?\d+)?(\.\d+)$/.test(value))) {
callback(new Error(rule.data.name + '不是浮点数'))
} else {
callback()
}
},
int(rule, value, callback){
if (value&&!/^-?\d+$/.test(value)) {
callback(new Error(rule.data.name + '不是整数'))
} else {
callback()
}
},
http(rule, value, callback){
if (value&&!/^https+:\/\/./.test(value)) {
callback(new Error(rule.data.name + '不是http(s)地址'))
} else {
callback()
}
},
"(0-+∞)"(rule, value, callback){
if (value&&!(!isNaN(value) && value > 0)) {
callback(new Error(rule.data.name + '不是大于0的数字'))
} else {
callback()
}
},
"[1-1e5]"(rule, value, callback){
if (value&&!(1 <= value && value <= 10000)) {
callback(new Error(rule.data.name + '不是大于等于1且小于等于10000的数'))
} else {
callback()
}
},
"[1-+10]"(rule, value, callback){
if (value&&!(value >= 1 && value <= 10)) {
callback(new Error(rule.data.name + '不是大于等于1且小于等于10的数'))
} else {
callback()
}
},
"[1-+5]"(rule, value, callback){
if (value&&!(value >= 1 && value <= 5)) {
callback(new Error(rule.data.name + '不是大于等于1且小于等于5的数'))
} else {
callback()
}
},
"[0-10]"(rule, value, callback){
if (value&&!(value >= 0 && value <= 10)) {
callback(new Error(rule.data.name + '不是大于等于0且小于等于10的数'))
} else {
callback()
}
},
"[0-1]"(rule, value, callback){
if (value&&!/^[0-1]$|^0?\.[0-9]+$/.test(value)) {
callback(new Error(rule.data.name + '不是0到1的数'))
} else {
callback()
}
},
"(0-1)"(rule, value, callback){
if (!(0 < value && value < 1)) {
callback(new Error(rule.data.name + '不是0到1的数'))
} else {
callback()
}
},
"(0-+∞)"(rule, value, callback){
if (value&&value <= 0) {
callback(new Error(rule.data.name + '不是大于0的数'))
} else {
callback()
}
},
"[1-+∞)"(rule, value, callback){
if (value&&value < 1) {
callback(new Error(rule.data.name + '不是大于或等于1的数'))
} else {
callback()
}
},
"[0.5-1]"(rule, value, callback){
if (!(0.5 <= value && value <= 1)) {
callback(new Error(rule.data.name + '不是大于或等于0.5小于或等于1的数'))
} else {
callback()
}
},
"[0-+∞)"(rule, value, callback){
if (value&&value < 0) {
callback(new Error(rule.data.name + '不是大于或等于0的数'))
} else {
callback()
}
},
"[2-+∞)"(rule, value, callback){
if (value&&value < 2) {
callback(new Error(rule.data.name + '不是大于或等于2的数'))
} else {
callback()
}
},
"[-1-+∞)"(rule, value, callback){
if (value&&value < -1) {
callback(new Error(rule.data.name + '不是大于或等于-1的数'))
} else {
callback()
}
},
"(0-0.5)"(rule, value, callback){
if (value&&!(0 < value && value < 0.5)) {
callback(new Error(rule.data.name + '不是大于0小于0.5的数'))
} else {
callback()
}
},
"[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 default validate;