/** * 设置Cookie * @param {Object} cookieMap为要添加的对象 * 格式为: * { * name: '11', * age: '1111' * } * @returns 返回当前cookie对象 * @module Cookie */ const setCookie = (cookieMap: object) => { for (let key in cookieMap) { document.cookie = key + "=" + cookieMap[key]; } return document.cookie; }; /** *获取字段值 * @param {String} name 要获取的字段 * @returns 存在时,返回相应的值;不存在时,返回null * @module Cookie */ const getCookie = (name: string) => { const cookie = document.cookie; if (cookie.length > 0) { if (name) { const reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)"); const result = cookie.match(reg); return result?.[2] || null; } return null; } return null; }; /** * 删除某个cookie字段 * @param {*} name 要删除的字段 * @returns 删除成功,返回true;删除失败,返回false * @module Cookie */ const deleteCookie = (name: string) => { if (document.cookie.length > 0) { const exp = new Date(); exp.setTime(exp.getTime() - 1); const cval = getCookie(name); if (cval != null) document.cookie = name + "=" + cval + ";expires=" + exp.toUTCString(); return true; } return false; }; /** *清除整个cookie * @returns 成功返回true,失败返回false * @module Cookie */ const clearCookie = () => { const keys = document.cookie.match(/[^ =;]+(?=\=)/g); if (keys) { keys.forEach((key) => deleteCookie(key)); return true; } return false; }; export { setCookie, getCookie, deleteCookie, clearCookie };