自己写的一些公共js方法
2019-04-02 10:20 WEB前端小菜鸟 阅读(3136) 评论(0) 编辑 收藏 举报
/* 说明文件:这里用的都是es6的语法 导入导出,拿vue举个栗子,你只需要在用到的地方,按需要导入就行了,然后在mounted中直接可以拿来用 比如下面的手机****方法,在需要用到的地方import 不揍1:import { hidePhone } from '../utils/utils.js' 不揍2: mounted(){ let hh=hidePhone(15308331208) console.log(hh,'222222222222'); } */ /* @1 隐藏中间四位数的电话好嘛**** */ function hidePhone(phone){ // var tel = phone; // // console.log(typeof tel); // tel = "" + tel; // // console.log(typeof tel); // var reg=/(\d{3})\d{4}(\d{4})/; // var tel1 = tel.replace(reg, "$1****$2") // console.log(tel1); /* 第二种方法,随意选一种嘛 都是先转换成字符串的 */ var tel = phone; tel = "" + tel; var ary = tel.split(""); console.log(ary); ary.splice(3,4,"****"); var tel1=ary.join(""); return tel1 //153****1208 } /*@2 年月日这个就有点多了(根据需求定制) */ /* 当前时间转换为年月日时分秒 */ function formatDate() { var date = new Date(); var year = date.getFullYear(); var month = addZero(date.getMonth() + 1); var day = addZero(date.getDate()); var hours = addZero(date.getHours()); var minutes = addZero(date.getMinutes()); var seconds = addZero(date.getSeconds()); // return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds; return year + '-' + month + '-' + day; } /* 配合上面的函数一起使用 */ function addZero(num) { return num < 10 ? '0' + num : num; } /* @3 倒计时 这里只是说一下倒计时怎么计算,vue中直接拿过去用let hour 变成this.hour类推就行了*/ function countDown(residue){ setInterval(()=> { let day = parseInt(residue / (24 * 3600)); //剩余天数 let hour = parseInt((residue) % (24 * 3600) / 3600); //剩余小时 let minute = parseInt((residue) % 3600 / 60); //剩余分钟 let second = parseInt((residue) % 60); //剩余秒数 residue-- console.log(day+'天'+hour+'小时'+minute+'分钟'+second+'秒')// 打印'1天1小时0分钟55秒' },1000) } /* @4 加减乘除 */ // 加法 function accAdd(num1,num2){ var r1,r2,m; try{ r1 = num1.toString().split('.')[1].length; }catch(e){ r1 = 0; } try{ r2=num2.toString().split(".")[1].length; }catch(e){ r2=0; } m=Math.pow(10,Math.max(r1,r2)); //pow() 方法可返回 x 的 y 次幂的值。 // return (num1*m+num2*m)/m; return Math.round(num1*m+num2*m)/m;//round() 方法可把一个数字舍入为最接近的整数。然后除以10的N次方 } // 减法 function accSub(arg1,arg2){ var r1,r2,m,n; try{r1=arg1.toString().split(".")[1].length}catch(e){r1=0} try{r2=arg2.toString().split(".")[1].length}catch(e){r2=0} m=Math.pow(10,Math.max(r1,r2)); //last modify by deeka //动态控制精度长度 n=(r1>=r2)?r1:r2; return ((arg1*m-arg2*m)/m).toFixed(n); } // 乘法 function accMul(arg1, arg2) { var m = 0, s1 = arg1.toString(), s2 = arg2.toString(); try { m += s1.split(".")[1].length } catch (e) {} try {m += s2.split(".")[1].length} catch (e) {} return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m) //pow() 方法可返回 x 的 y 次幂的值 } //除法(要配合乘法函数一起使用) function accDiv(arg1,arg2){ var t1=0,t2=0,r1,r2; try{t1=arg1.toString().split(".")[1].length}catch(e){} try{t2=arg2.toString().split(".")[1].length}catch(e){} r1=Number(arg1.toString().replace(".","")) r2=Number(arg2.toString().replace(".","")) // return (r1/r2)*pow(10,t2-t1); //改变这一句,这里相当于又是乘法了 so改变一下 return accMul(r1/r2,Math.pow(10,t2-t1))//调取乘法函数 } export {hidePhone,formatDate,countDown,accAdd,accSub,accMul,accDiv}