前端 设置cookie、获取cookie、删除cookie
2019-08-16 本文已影响0人
KK_boy
cookie是一个个键值对(“键=值”的形式)加上分号空格隔开组合而成, 形如: "name1=value1; name2=value2; name3=value3"
/**
* 获取对应名称的cookie
* @param name cookie的名称
* @returns {null} 不存在时,返回null
*/
const getCookie = (name) => {
const reg = new RegExp(`(^| )${name}=([^;]*)(;|$)`);
const arr = document.cookie.match(reg);
if (arr) {
return unescape(arr[2]);
}
return null;
};
/**
* 设置cookie
* @param name cookie的名称
* @param value cookie的值
* @param day cookie的过期时间
*/
const setCookie = (name, value, day) => {
if (day !== 0) { // 当设置的时间等于0时,不设置expires属性,cookie在浏览器关闭后删除
const expires = day * 24 * 60 * 60 * 1000;
const date = new Date(+new Date() + expires);
document.cookie = `${name}=${escape(value)};expires=${date.toUTCString()}`;
} else {
document.cookie = `${name}=${escape(value)}`;
}
};
/**
* 删除cookie
* @param name cookie的名称
*/
const delCookie = (name) => {
setCookie(name, ' ', -1);
};
export {
getCookie,
setCookie,
delCookie,
};