/**
|
* TANGIMING 2018-3-9
|
* 这是一个用于存放正则表达式和一些验证方法的插件
|
* 除了存放了目前常用的正则之外,还根据这些正则封装了对应的验证方法
|
*/
|
|
export default {
|
// 金额格式化
|
formatMoney(str = 0) {
|
str = str + '';
|
let newStr = '';
|
let count = 0;
|
if (str.indexOf('.') === -1) {
|
for (let i = str.length - 1; i >= 0; i--) {
|
if (count % 3 === 0 && count !== 0) {
|
newStr = str.charAt(i) + ',' + newStr;
|
} else {
|
newStr = str.charAt(i) + newStr;
|
}
|
count++;
|
}
|
str = newStr + '.00'; // 自动补小数点后两位
|
return str;
|
} else {
|
for (let i = str.indexOf('.') - 1; i >= 0; i--) {
|
if (count % 3 === 0 && count !== 0) {
|
newStr = str.charAt(i) + ',' + newStr;
|
} else {
|
newStr = str.charAt(i) + newStr; // 逐个字符相接起来
|
}
|
count++;
|
}
|
str = newStr + (str + '00').substr((str + '00').indexOf('.'), 3);
|
return str;
|
}
|
},
|
// 身份证 中间用* 显示
|
cardIDHide(cardid) {
|
if (cardid) {
|
return cardid.replace(/^(.{6})(?:\d+)(.{4})$/, '$1****$2');
|
} else {
|
return '';
|
}
|
},
|
//手机号,中间四位*显示
|
formatPhone(phone) {
|
return phone.replace(/(\d{3})\d{4}(\d{4})/, '$1****$2');
|
},
|
// 电话号码格式
|
checkPhone(phone) {
|
let reg = /^1([35789][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$/;
|
return reg.test(phone);
|
},
|
checkEmail(email) {
|
// 验证邮箱格式
|
let reg = /[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/;
|
// let reg = /^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/;
|
return reg.test(email);
|
},
|
checkVerifyCode(code) {
|
// 验证验证码格式
|
let reg = /^\d{6}$/;
|
return reg.test(code);
|
},
|
checkDynamicCode(code) {
|
// 验证邀请码格式
|
let reg = /^[A-Za-z0-9]{4}$/;
|
return reg.test(code);
|
},
|
// password check
|
checkPassword(password) {
|
// 验证密码格式
|
let reg = /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$/;
|
return reg.test(password);
|
},
|
// name check
|
checkName(name) {
|
// 验证用户名格式
|
let reg = /^[\u4E00-\u9FA5]{2,10}$/;
|
return reg.test(name);
|
},
|
// 账户名称的正则表达式
|
checkUsername(name) {
|
let reg = /^[\u4e00-\u9fa50-9a-zA-Z]{4,16}$/;
|
return reg.test(name);
|
},
|
// 统一验证
|
checkCommonField(name) {
|
let reg = /^[\u4e00-\u9fa50-9a-zA-Z]{4,30}$/;
|
return reg.test(name);
|
},
|
isIdcard(val) {
|
let result = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/.test(val);
|
return result;
|
},
|
checkValEmpty(str) {
|
// 验证是否为空
|
if (
|
str === undefined ||
|
str === null ||
|
str.length <= 0 ||
|
str === 'undefined'
|
) {
|
return true;
|
} else {
|
return false;
|
}
|
},
|
// 验证佣金输入金额
|
checkCommission(commission) {
|
// 小于100且后面可以带4个小数点
|
let reg = /^100$|^(\d|[1-9]\d)(\.\d{1,4})*$/;
|
//一亿以内,保留四位小数
|
// /^([1-9]\d{0,7}|0)(\.\d{1,4})?$/
|
// 如果通过的话,那么判断小数点的前几位数字
|
return reg.test(commission);
|
},
|
// 验证渠道编号是否符合规则--4-8位以内数字+字母,区分大小写
|
checkChannelNo(channelNo) {
|
let reg = /^[\w\d]{4,8}$/;
|
return reg.test(channelNo);
|
},
|
//验证是否包含空格
|
checkSpace(val) {
|
let reg = /^\s+$/;
|
if (reg.test(val)) {
|
return true;
|
} else {
|
return false;
|
}
|
},
|
//将发送请求中的参数格式化,如果为空则转为null
|
formatReq(obj) {
|
for (let i in obj) {
|
let item = obj[i];
|
if (item === null) continue;
|
if (
|
item === undefined ||
|
item === '' ||
|
item === 'undefined' ||
|
item.length <= 0 ||
|
JSON.stringify(item) == '{}'
|
) {
|
obj[i] = null;
|
}
|
}
|
return obj;
|
},
|
// 只能输入数字与小数点正则判断
|
checkIntegerAndDot(checkVal) {
|
let dotReg = /\./g;
|
let IntegerReg = /^[1-9]{1}\d{0,5}$/;
|
// 如果输入了多个点,直接不符合要求
|
if (checkVal.match(dotReg) && checkVal.match(dotReg).length > 1) {
|
return false;
|
// 输入了一个点
|
} else if (
|
checkVal.match(dotReg) &&
|
checkVal.match(dotReg).length === 1
|
) {
|
// 开头与结尾都不能出现点,点的前面与后面必须是数字
|
let strLen = checkVal.length;
|
if (
|
checkVal.indexOf('.') === 0 ||
|
checkVal.indexOf('.') === strLen - 1
|
) {
|
return false;
|
// 超过个数的限制的话
|
} else {
|
return strLen <= 6;
|
}
|
// 没有小数点的话,那么就是全部数字进行匹配
|
} else if (!checkVal.match(dotReg)) {
|
return IntegerReg.test(checkVal);
|
}
|
},
|
//银行卡验证
|
bankCard(iccid) {
|
let initCard = iccid;
|
var s1 = 0,
|
s2 = 0;
|
iccid = iccid.substring(0, iccid.length - 1);
|
var reverse = '';
|
for (var i = iccid.length; i > 0; i--) {
|
reverse += iccid.charAt(i - 1);
|
}
|
for (i = 0; i < reverse.length; i++) {
|
var digit = parseInt(reverse.charAt(i), 10);
|
if (i % 2 != 0) {
|
// this is for odd digits, they are 1-indexed in the
|
// algorithm
|
s1 += digit;
|
} else {
|
// add 2 * digit for 0-4, add 2 * digit - 9 for 5-9
|
s2 += 2 * digit;
|
if (digit >= 5) {
|
s2 -= 9;
|
}
|
}
|
}
|
var sum = 10 - ((s1 + s2) % 10);
|
if (sum === 10) {
|
sum = 0;
|
}
|
return iccid + sum == initCard;
|
}
|
};
|