z-util-page
Version:
91 lines (90 loc) • 1.88 kB
JavaScript
;
/**
* @module CookieHelper
* @category Cookie操作辅助类
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.getItem = getItem;
exports.getItemOnce = getItemOnce;
exports.setItem = setItem;
exports.removeItem = removeItem;
exports.exist = exist;
exports.clear = clear;
/**
* 根据key值获取cookie数据
* @example
* ```ts
* getItem('test');
* ```
* @param key key值
* @returns Cookie中key值为key的值
*/
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的值
*/
function getItemOnce(key) {
const val = getItem(key);
removeItem(`${key}`);
return val;
}
/**
* 设置cookie的键值对
* @example
* ```ts
* setItem('test', '你好, 世界!');
* ```
* @param key 键
* @param val 值
*/
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值
*/
function removeItem(key) {
document.cookie = `${key}=;path=/;expires=${new Date(0).toUTCString()}`;
}
/**
* 根据key值判断Cookie中是否存在键值对
* @example
* ```ts
* exist('test');
* ```
* @param key - key值
*/
function exist(key) {
const keys = document.cookie.match(/[^ =;]+(?==)/g) || [];
return keys.includes(key);
}
/**
* 清空cookie
* @example
* ```ts
* clear();
* ```
*/
function clear() {
const keys = document.cookie.match(/[^ =;]+(?==)/g);
if (keys) {
for (let i = keys.length; i--;)
removeItem(keys[i]);
}
}