/* * @Author: 小明丶 * @Date: 2020-05-09 09:35:12 * @LastEditors: zxq * @LastEditTime: 2022-03-30 09:33:47 * @Description: */ import { Toast, } from 'vant'; import IDValidator from '@/utils/IDValidator'; import vNavBar from '../v-navbar'; import vCell from '../cell/h-cell'; import hIpt from '../input/h-ipt'; import hList from '../h-list'; import upLoadIdCard from '../upload/uploadIdCard' var arr = [ vNavBar, vCell, hIpt, hList, upLoadIdCard ] export default { install(Vue, opt) { // 循环注入自定义组件 arr.forEach(item => { Vue.component(item.name, item) }) // 老项目的 函数 Vue.prototype.$tool = { toast(text) { Toast(text) }, // 金额格式化 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(3|4|5|6|7|8|9)\d{9}$/ //let reg = /^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$/; return reg.test(phone); }, //座机/手机/400号码验证 checkCompanyPhone(phone) { let reg = /^([0-9]{3,4}-)?[0-9]{7,8}$|^1(3|4|5|6|7|8|9)\d{9}$|^\d{3,4}-\d{3,4}-\d{3,4}$/ 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); }, //校验真实姓名 checkRealName(name) { // 验证用户名格式 let reg = /^[\u4E00-\u9FA5]{2,6}$/; return reg.test(name); }, // 账户名称的正则表达式 checkUsername(name) { let reg = /^[\u4e00-\u9fa50-9a-zA-Z]{4,16}$/; return reg.test(name); }, //身份证详细地址验证 checkCardAddress(address) { let reg = /^[\u4e00-\u9fa50-9a-zA-Z]{9,30}$/; return reg.test(address); }, //详细地址验证 checkAddress(address) { let reg = /^[\u4e00-\u9fa50-9a-zA-Z]{9,30}$/; return reg.test(address); }, // 统一验证 checkCommonField(name) { let reg = /^[\u4e00-\u9fa50-9a-zA-Z]{4,30}$/; return reg.test(name); }, // idCard check checkIDCard(idCard) { // 验证身份证格式 return IDValidator.isValid(idCard); }, 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(idCard) { let reg = /^([1-9]{1})(\d{14,30})$/; return reg.test(idCard); }, //公司名称校验 checkCompany(name) { let reg = /^[\u4e00-\u9fa5a-zA-Z]{2,20}$/; return reg.test(name); }, date(date, fmt) { if (!date) { return null; } if (typeof date === 'string') { date = new Date(date.replace(/-/g, '/')); } if (typeof date === 'number') { date = new Date(date); } if (fmt === undefined) { return Number(date); } else { var o = { 'M+': date.getMonth() + 1, 'D+': date.getDate(), 'h+': date.getHours() % 12 === 0 ? 12 : date.getHours() % 12, 'H+': date.getHours(), 'm+': date.getMinutes(), 's+': date.getSeconds(), 'q+': Math.floor((date.getMonth() + 3) / 3), S: date.getMilliseconds() }; var week = { '0': '\u65e5', '1': '\u4e00', '2': '\u4e8c', '3': '\u4e09', '4': '\u56db', '5': '\u4e94', '6': '\u516d' }; if (/(Y+)/.test(fmt)) { fmt = fmt.replace( RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length) ); } if (/(E+)/.test(fmt)) { fmt = fmt.replace( RegExp.$1, (RegExp.$1.length > 1 ? RegExp.$1.length > 2 ? '\u661f\u671f' : '\u5468' : '') + week[date.getDay() + ''] ); } for (var k in o) { if (new RegExp('(' + k + ')').test(fmt)) { fmt = fmt.replace( RegExp.$1, RegExp.$1.length === 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length) ); } } return fmt; } }, } } }