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

Posted 南城FE

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了让你事半功倍的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 = 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.Linux系统让你事半功倍的正则表达式

20 个实用的 Angular.js 工具

光纤安装测试工具标准用法,让你事半功倍

掌握 TS 这些工具类型,让你开发事半功倍

掌握 TS 这些工具类型,让你开发事半功倍

什么工具能让你采集BS网页或CS软件系统的数据时,事半功倍?