JavaScript工作中经常会用到的工具类集合
获取 url 中"?"符后的字串
function GetRequest() {
var url = window.location.search;
var theRequest = new Object();
if (url.indexOf("?") != -1) {
var str = decodeURI(url.substr(1));
strs = str.split("&");
for (var i = 0; i < strs.length; i++) {
theRequest[strs[i].split("=")[0]] = strs[i].split("=")[1];
}
}
return theRequest;
}
<!-- 调用 -->
<!-- console.log(GetRequest().xxx) -->
null/undefined 转空字符串
function parseStrEmpty(key) {
if ([null, "null", undefined, "undefined"].includes(key)) return "";
else return key;
}
json 转字符串
function jsonToString (json) {
return JSON.stringify(json)
}
手机号码格式正误
function isPhoneNum(str) {
return /^(0|86|17951)?(13[0-9]|15[012356789]|17[678]|18[0-9]|14[57])[0-9]{8}$/.test(str)
}
邮箱正误
function isEmail(str) {
return /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/.test(str);
}
手机号脱敏
function telKeep(phoneNumber) {
if (phoneNumber) {
let reg = /^(\d{3})\d*(\d{4})$/;
return String(phoneNumber).replace(reg, '$1****$2')
}
}
通用脱敏方法(身份证/银行卡/手机号/邮箱等等)
function Desensitization(str,beginLen,endLen) {
var len = str.length;
var firstStr = str.substr(0,beginLen);
var lastStr = str.substr(endLen);
var middleStr = str.substring(beginLen, len-Math.abs(endLen)).replace(/[\s\S]/ig, '*');
tempStr = firstStr + middleStr + lastStr;
return tempStr;
}
日期转时间戳
function timeToTimeStamp (time) {
return +time
}
验证数组中是否有空值
function validateArrayEmpty (arr) {
console.log(arr)
if(arr.length) {
for (var el of arr) {
for(var key in el) {
if( ['',null,undefined].includes(el[key]) ) {
console.log('有空值')
return
}
}
}
}
}
Blob 转 Base64
function blobToDataURI(blob, callback) {
console.log('blob',blob)
var reader = new FileReader();
reader.readAsDataURL(blob);
reader.onload = function (e) {
callback(e.target.result);
}
}
保留小数点后几位
function formatDecimal(num, decimal) {
num = num.toString()
let index = num.indexOf('.')
if (index !== -1) {
num = num.substring(0, decimal + index + 1)
} else {
num = num.substring(0)
}
return parseFloat(num).toFixed(decimal)
}
时间戳转日期
function formatTime(current,type = 1) {
let temp = current
if (typeof Number(temp) === 'number' && !isNaN(Number(temp))) {
temp = Number(temp)
} else if (typeof temp === 'string' && isNaN(Number(temp))) {
temp = temp.toString().replace('-', '/').replace('-', '/')
return temp
}
var date = new Date(temp)
var yyyy = date.getFullYear()
var MM = date.getMonth() + 1 >= 10 ? date.getMonth() + 1 : '0' + (date.getMonth() + 1)
var dd = date.getDate() >= 10 ? date.getDate() : '0' + date.getDate()
var HH = date.getHours() >= 10 ? date.getHours() : '0' + date.getHours()
var mm = date.getMinutes() >= 10 ? date.getMinutes() : '0' + date.getMinutes()
var ss = date.getSeconds() >= 10 ? date.getSeconds() : '0' + date.getSeconds()
if (type === 1) {
return yyyy + '-' + MM + '-' + dd + ' ' + HH + ':' + mm + ':' + ss
} else if (type === 2) {
return yyyy + '-' + MM + '-' + dd + ' 00:00:00'
} else if (type === 3) {
return yyyy + '-' + MM + '-' + dd + ' 23:59:59'
} else if (type === 4) {
return yyyy + '-' + MM + '-' + dd
}
}
获取两个时间差(常用于开始日期/结束日期比较)
function getDateDiff(startTime, endTime) {
//将xxxx-xx-xx的时间格式,转换为 xxxx/xx/xx的格式
startTime = startTime.replace(/\-/g, "/");
endTime = endTime.replace(/\-/g, "/");
var sTime = new Date(startTime); //开始时间
var eTime = new Date(endTime); //结束时间
var timeOff = eTime - sTime; //相差时间戳(毫秒数)
var timeMinute = 1000 * 60;
var timeHour = 1000 * 3600;
var timeDay = 1000 * 3600 * 24;
var timeYear = 1000 * 3600 * 24 * 365;
if(timeOff / timeYear >= 1) {
return parseInt(timeOff / timeYear) + "年" + parseInt((timeOff % timeYear)/timeDay) + "天";
} else if(timeOff / timeDay >= 1) {
return parseInt(timeOff / timeDay) + "天" + parseInt((timeOff % timeDay)/timeHour) + "小时";
} else {
return parseInt(timeOff / timeHour) + "小时" + parseInt((timeOff % timeHour)/timeMinute) + "分";
}
}
获取两个日期相差天数
function dateDiff (sDate1, sDate2) {
let arrDate, objDate1, objDate2, iDays;
arrDate = sDate1.split('-');
objDate1 = new Date(arrDate[1] + '/' + arrDate[2] + '/' + arrDate[0])
arrDate = sDate2.split('-');
objDate2 = new Date(arrDate[1] + '/' + arrDate[2] + '/' + arrDate[0]);
iDays = parseInt(Math.abs(objDate1 - objDate2) / 1000 / 60 / 60 / 24); // 相差毫秒数转成天数
return iDays;
}
本文来自博客园,作者:杨凌云的博客,转载请注明原文链接:https://www.cnblogs.com/leacloud/articles/15643594.html

浙公网安备 33010602011771号