JS常用Utils

图片预加载
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
/**
* 预加载图片
* @param source Array 预加载图片列表
*/
/*预加载图片*/
function preLoadImg(source) {
/*加载图片方法*/
function loadImage(url) {
return new Promise((resolve, reject) => {
let img = new Image();
img.onload = () => resolve(img);
img.onerror = reject;
img.src = url;
});
}

let pr = [];
source.forEach((url) => {
// 预加载图片
let p = loadImage(url)
.then(() => {
console.log("Single image loading completed");
})
.catch((err) => {
console.log(err);
});
pr.push(p);
});
// 图片全部加载完
Promise.all(pr).then(() => {
console.log("All images loaded");
});
}
获取 url 参数
1
2
3
4
5
6
7
8
9
10
11
/**
* 获取URL参数
* @param name String 要获取的参数Key
*/

function getQueryString(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]);
return null;
}
判断 str 字符串中是否含有字符串
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
/**
* 判断 str 字符串中是否含有字符串 subStr
* @param {} str 原字符串
* @param {} subStr 要查找的字符串
* @param {} isIgnoreCase 是否忽略大小写
* @return {Boolean}
*/
function contains(str, subStr, isIgnoreCase) {
if (isIgnoreCase) {
// 忽略大小写
str = str.toLowerCase();
subStr = subStr.toLowerCase();
}
var startChar = subStr.substring(0, 1);
var strLen = subStr.length;
for (var j = 0; j < str.length - strLen + 1; j++) {
if (str.charAt(j) == startChar) {
/* 如果匹配起始字符,开始查找 */
if (str.substring(j, j + strLen) == subStr) {
/*如果从j开始的字符与 str 匹配 */
return true;
}
}
}
return false;
}
  • 设置 cookie
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
/**
* 设置cookie
* @param name String key
* @param value String Value
* @param expdays Number 过期时间
*/

function setCookie(name, value, expdays) {
var expdate = new Date();
//设置Cookie过期日期
expdate.setDate(expdate.getDate() + expdays);
//添加Cookie
document.cookie =
name + "=" + escape(value) + ";expires=" + expdate.toUTCString();
}
  • 获取 cookie
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
* 获取cookie
* @param name String key
* @returns {string}
*/
function getCookie(name) {
//获取name在Cookie中起止位置
var start = document.cookie.indexOf(name + "=");

if (start != -1) {
start = start + name.length + 1;
//获取value的终止位置
var end = document.cookie.indexOf(";", start);
if (end == -1) end = document.cookie.length;
//截获cookie的value值,并返回
return unescape(document.cookie.substring(start, end));
}
return "";
}
  • 删除 cookie
1
2
3
4
5
6
7
function delCookie(name) {
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval = getCookie(name);
if (cval != null)
document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
}

上述功能已经发布至 NPM 参考p-utils


JS常用Utils
https://blog.funfe.cn/2023/12/07/20231207173941/
作者
李鹏杰
发布于
2023年12月7日
许可协议