前端 设置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,
};

参考

上一篇下一篇

猜你喜欢

热点阅读