自己写的一些公共js方法
/* 说明文件:这里用的都是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}
自己写的一些公共js方法的更多相关文章
- JS方法代理
作者:Jiang, Jilin JS作为一门脚本语言.十分easy上手.外加其灵活性,能够轻而易举地扩展功能.今天,我们就聊聊JS的方法代理. 方法代理是脚本语言中常见的方法扩展形式.这样的灵活的形式 ...
- vue 中如何对公共css、 js 方法进行单文件统一管理,全局调用
1.前言 最近,为公司开发交付的一个后台管理系统项目,我使用了 Vue 框架进行开发实践. 模块化.组件化.工程化的开发体验非常好.良好的 api,优雅的设计,对于工程师非常友好. 但是由于模块比较多 ...
- 公共的强制保留两位小数的js方法
强制保留两位小数的js方法 //写一个公共的强制保留两位小数的js方法 function toDecimal2 (x) { var f = parseFloat(x) if (isNaN(f)) { ...
- vue element-ui怎样提炼一个自己写的js当作公共js
vue element-ui怎样提炼一个自己写的js当作公共js请教一下各位大神,我刚刚触摸vue element-ui几天,写的一个清晰检索的input框,现在需当作项目公共的部分,可遭需的html ...
- 小程序-调用公共js对象方法/ app.js
在小程序中,如果在子页面想调用共公js的方法,需先在子页面js中先实例化app:具体过程如下 子页面js: 1 2 3 4 5 6 7 8 //调用公共js对象以便调用其方法 var app = ge ...
- js方法的封装
封装是为了更好的调用,当我们很多页面都需要同一种方法的时候,为了避免每个页面都需要进行重写方法,增加工作量,这个时候就需要我们对部分公共的方法进行封装,这样便于更好的进行调用 我在写接口的时候用到了 ...
- Java使用正则表达式取网页中的一段内容(以取Js方法为例)
关于正则表达式: 表1.常用的元字符 代码 说明 . 匹配除换行符以外的任意字符 \w 匹配字母或数字或下划线或汉字 \s 匹配任意的空白符 \d 匹配数字 \b 匹配单词的开始或结束 ^ 匹配字符串 ...
- JS 在open打开的子窗口页面中调用父窗口页面的JS方法
需求的情景如下: 1:做新增或修改等操作的时候打开一个新的浏览器窗口(使用window.open(参数等)方法) 2:在新增或修改等的页面上有返回按钮.重置按钮.保存按钮,对于返回就直接关闭此窗口(使 ...
- C#后台程序与HTML页面中JS方法互调(功能类似于Ajax中的DWR)
此方法适用于 C#中嵌入WebBrowser(浏览器) 通过浏览器中加载的页面与C#的后台代码进行交互. 一.C#程序 1.在C#窗体中添加WebBrowser(浏览器),将页面的URL添加到浏览器中 ...
随机推荐
- std::array中的std::get<n>()
模板函数std::get<n>()是一个辅助函数,它能够获取到容器的第 n 个元素.模板参数的实参必须是一个在编译时可以确定的常量表达式,编译时会对它检查. get<n>()模 ...
- sql多字段相减///单字段多值
SELECT IFNULL(t.预算金额,)-IFNULL(t.实使用金额,)-IFNULL(SUM(f.已审核.待审核总数),)remainingMoney FROM 表名 t LEFT JOIN ...
- Java内存溢出异常(上)
上一篇文章我们讲了JVM运行时数据区域与内存溢出异常,其中对于内存溢出异常这部分将的不够详细,这篇文章将着重讲解Java内存溢出异常的相关知识.如果有没看过上一篇文章的小伙伴们,请点击Java内存区域 ...
- Android-Layer list
Android-Layer list 学习自: KEEGAN小钢 原文链接 : (https://keeganlee.me/post/android/20150909) 使用layer-list 可以 ...
- SpringCloud使用Nacos服务发现实现远程调用
本文使用SpringCloud结合Nacos服务发现,Feign远程调用做一个简单的Demo. 1 Nacos 关于Nacos之前写了两篇文章关于SpringBoot对它的使用,感兴趣可以查看一下. ...
- PBRT笔记(2)——BVH
BVH 构建BVH树分三步: 计算每个图元的边界信息并且存储在数组中 使用指定的方法构建树 优化树,使得树更加紧凑 //BVH边界信息,存储了图元号,包围盒以及中心点 struct BVHPrimit ...
- java @Override 报错解决
有时候Java的Eclipse工程换一台电脑后编译总是@override报错,把@override去掉就好了,但不能从根本上解决问题,因为有时候有@override的地方超级多. 这是jdk的问题,@ ...
- django——模型层之单表
1.ORM简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可以轻松更换数据库,这极大的减轻了开发人 ...
- Python的numpy库中rand(),randn(),randint(),random_integers()的使用
1.numpy.random.rand() 用法是:numpy.random.rand(d0,d1,…dn) 以给定的形状创建一个数组,并在数组中加入在[0,1]之间均匀分布的随机样本. 用法及实现: ...
- js之promise讲解
1 Promise概述 Promise对象是CommonJS工作组提出的一种规范,目的是为异步操作提供统一接口. 那么,什么是Promises? 首先,它是一个对象,也就是说与其他JavaScript ...