z-util-page
Version:
83 lines (82 loc) • 1.68 kB
JavaScript
/**
* @module CookieHelper
* @category Cookie操作辅助类
*/
/**
* 根据key值获取cookie数据
* @example
* ```ts
* getItem('test');
* ```
* @param key key值
* @returns Cookie中key值为key的值
*/
export function getItem(key) {
return document.cookie.replace(new RegExp(`(?:(?:^|.*;\\s*)${key}\\s*=\\s*([^;]*).*$)|^.*$`), "$1");
}
/**
* 根据key值获取cookie数据后删除Cookie中该键值对
* @example
* ```ts
* getItemOnce('test');
* ```
* @param key key值
* @returns Cookie中键值为key的值
*/
export function getItemOnce(key) {
const val = getItem(key);
removeItem(`${key}`);
return val;
}
/**
* 设置cookie的键值对
* @example
* ```ts
* setItem('test', '你好, 世界!');
* ```
* @param key 键
* @param val 值
*/
export function setItem(key, val) {
if (typeof val !== 'string')
return false;
document.cookie = `${key}=${val};path=/`;
return true;
}
/**
* 根据key值删除Cookie中键值对
* @example
* ```ts
* removeItem('test');
* ```
* @param key key值
*/
export function removeItem(key) {
document.cookie = `${key}=;path=/;expires=${new Date(0).toUTCString()}`;
}
/**
* 根据key值判断Cookie中是否存在键值对
* @example
* ```ts
* exist('test');
* ```
* @param key - key值
*/
export function exist(key) {
const keys = document.cookie.match(/[^ =;]+(?==)/g) || [];
return keys.includes(key);
}
/**
* 清空cookie
* @example
* ```ts
* clear();
* ```
*/
export function clear() {
const keys = document.cookie.match(/[^ =;]+(?==)/g);
if (keys) {
for (let i = keys.length; i--;)
removeItem(keys[i]);
}
}