/*
|
* @Descripttion: 表单验证工具函数
|
* @Author: TM丶
|
* @LastEditors: 小明丶
|
* @Date: 2019-04-01 19:54:53
|
* @LastEditTime: 2019-08-22 14:23:15
|
*/
|
import IDValidator from './IDValidator';
|
|
let fns = {
|
// 参数是否为真
|
isEmpty(value) {
|
return value !== "" && typeof value !== "undefined" && value !== null;
|
},
|
//密码验证
|
isPassword(value) {
|
// 验证密码格式
|
return /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$/.test(value);
|
},
|
// 验证码验证
|
isCode(value) {
|
return /^\d{4}$/.test(value);
|
},
|
isEmail(value){
|
return /[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/.test(value);
|
},
|
// 验证电话
|
isTel(value) {
|
return /^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$/.test(value);
|
},
|
//验证身份证
|
isIdCard(value){
|
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{3}([0-9]|X)$/.test(value)
|
},
|
// idCard check
|
checkIDCard(idCard) {
|
// 验证身份证格式
|
return IDValidator.isValid(idCard);
|
},
|
//验证银行卡号
|
isBankCode(iccid){
|
let initCard = iccid,
|
s1 = 0,
|
s2 = 0;
|
iccid = iccid.substring(0, iccid.length - 1);
|
let reverse = '';
|
for (let i = iccid.length; i > 0; i--) {
|
reverse += iccid.charAt(i - 1);
|
}
|
for (let i = 0; i < reverse.length; i++) {
|
let digit = parseInt(reverse.charAt(i), 10);
|
if (i % 2 != 0) {
|
s1 += digit;
|
} else {
|
s2 += 2 * digit;
|
if (digit >= 5) {
|
s2 -= 9;
|
}
|
}
|
}
|
let sum = 10 - ((s1 + s2) % 10);
|
if (sum === 10) {
|
sum = 0;
|
}
|
return iccid + sum == initCard;
|
}
|
};
|
|
let Validator = function (form, rules) {
|
return {
|
// rule demo
|
//rules:>>> [{key:"formkey",message:"",type:"isEmpty",rule:/\d/}]
|
check(callback) {
|
if (!Array.isArray(rules) && rules.length === 0) throw "rules must be instance of Array";
|
let len = rules.length;
|
for (let index = 0; index < len; index++) {
|
const ruleItem = rules[index];
|
let fnName = fns[ruleItem.type];
|
if (fnName && !fnName(form[ruleItem.key])) {
|
callback(ruleItem);
|
return false;
|
}
|
// 如果有自定义验证规则
|
let rule = ruleItem.rule;
|
if(typeof rule !=='undefined' && !rule.test(form[ruleItem.key])){
|
callback(ruleItem);
|
return false;
|
}
|
}
|
return true;
|
}
|
}
|
};
|
|
|
// export default Validator;
|
export default {
|
install(Vue,opt){
|
Vue.prototype.$validator = Validator;
|
}
|
}
|