/**
|
* 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([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$/;
|
return reg.test(phone);
|
},
|
checkEmail(email) {
|
// 验证邮箱格式
|
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);
|
},
|
// idCard check
|
checkIDCard(idCard) {
|
// 验证身份证格式
|
if (idCard.length === 18) {
|
let reg = /^\d{17}[\d|X|x]$/;
|
return reg.test(idCard);
|
} else if (idCard.length === 15) {
|
let reg = /^\d{15}$/;
|
return reg.test(idCard);
|
} else {
|
return false;
|
}
|
},
|
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);
|
}
|
}
|
};
|