让你事半功倍的JS utils工具函数

春衣少年当酒歌,起舞四顾以笑和。这篇文章主要讲述让你事半功倍的JS utils工具函数相关的知识,希望能为你提供帮助。
【让你事半功倍的JS utils工具函数】今日分享一篇积累和收集了很久的JS utils工具函数,文章代码量较多,建议收藏起来慢慢看,当哪一天需要用到的时候,打开你尘封已久的收藏夹,相信能让你的业务代码开发事半功倍。
汇集了时间相关,DOM相关,URL相关,判断相关,图片相关,缓存相关等。部分逻辑处理较为简单,如果是业务量较为复杂的情况建议要斟酌使用,但对于大部分的项目应该是绰绰有余。接下来就进入代码部分吧~
时间相关
时间戳转自定义格式时间

export const dateRegExp = (time, strText) =>
const date = new Date(time)
if (/(y+)/.test(strText))
strText = strText.replace(RegExp.$1, (date.getFullYear() + ).substr(4 - RegExp.$1.length))

const dataType =
M+: date.getMonth() + 1,
d+: date.getDate(),
h+: date.getHours(),
m+: date.getMinutes(),
s+: date.getSeconds()

for (const typeKey in dataType)
if (new RegExp(`($typeKey)`).test(strText))
const typeValue = https://www.songbingjia.com/android/dataType[typeKey] +
strText = strText.replace(RegExp.$1, (RegExp.$1.length === 1 ? typeValue : padLeftZero(typeValue)))


return strText

格式化距离现在已过去的时间
export function formatPassTime(startTime)
var currentTime = Date.parse(new Date()),
time = currentTime - startTime,
day = parseInt(time / (1000 * 60 * 60 * 24)),
hour = parseInt(time / (1000 * 60 * 60)),
min = parseInt(time / (1000 * 60)),
month = parseInt(day / 30),
year = parseInt(month / 12);
if (year) return year + "年前"
if (month) return month + "个月前"
if (day) return day + "天前"
if (hour) return hour + "小时前"
if (min) return min + "分钟前"
else return 刚刚

判断两个不同格式的日期是否为同一天
export function isSameDay(d1, d2)
if (!d2)
d2 = new Date();

var d1_year = d1.getFullYear(),
d1_month = d1.getMonth() + 1,
d1_date = d1.getDate();
var d2_year = d2.getFullYear(),
d2_month = d2.getMonth() + 1,
d2_date = d2.getDate()

return d1_date === d2_date & & d1_month === d2_month & & d1_year === d2_year;

判断时间是不是今天
export function isTodayDate(time)
if (new Date(time).toDateString() === new Date().toDateString())
return true;

return false;

URL 相关
URL 参数转对象
export function parseQueryString(url)
url = url ? url:window.location.search ;
let search = url[0] === ? ? url : url.substring(url.lastIndexOf(?));
let q = ;
search.replace(/([^?& =]+)=([^& ]+)/g, (_, k, v) => q[k] = decodeURIComponent(v));
return q;

获取URL参数
export function getQueryString(name)
const reg = new RegExp((^|& ) + name + =([^& ]*)(& |$), i)
const r = window.location.search.substr(1).match(reg)
if (r !== null)
return decodeURI(r[2])

return null

获取URL hash后面的参数
export getHashQueryString = (key) =>
const after = window.location.

    推荐阅读