cookie 工具函数提供 get、set、delete 三方法:get 精确匹配解码返回值或 undefined;set 支持 expires(date 或秒数)、path(默认/)、domain、secure、samesite,自动编码;delete 通过 set 过期实现,需保持 path/domain 一致。

直接封装一个轻量、可靠、支持过期时间与路径等常见选项的 Cookie 工具函数,不依赖第三方库,兼容主流浏览器即可。
基础读取:按名称获取 Cookie 值
Cookie 是以 key=value 形式拼接在字符串里的,用分号分隔。读取时需注意空格和 URL 编码问题,推荐用正则精确匹配,避免子串误匹配(比如 user 和 username)。
- 用
document.cookie获取原始字符串 - 正则匹配
^key=([^;]*),并用decodeURIComponent解码 - 未找到返回
undefined,而非空字符串,便于逻辑判断
设置 Cookie:支持过期时间、路径、域名、安全标记
写入 Cookie 本质是拼接字符串赋值给 document.cookie。关键点在于:
Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。
- 过期时间传入
Date实例或秒数(如3600表示 1 小时),内部自动转为expires字符串 -
path默认为/,确保同域下各路径都能访问 - 可选传入
domain(如.example.com)、secure(仅 HTTPS)、sameSite(如Lax) - 值必须用
encodeURIComponent编码,防止特殊字符破坏格式
删除 Cookie:设过期时间为过去时间
删除本质是覆盖写入一个已过期的同名 Cookie。只需调用 set 方法,传入 expires: new Date(0) 或 max-age: 0 即可。
- 必须指定相同的
path和domain,否则可能删不掉(原 Cookie 是带路径写的,删时没带就无效) - 推荐统一使用
path: '/'写入,删时也保持一致,减少出错 - 无需手动清理 document.cookie 字符串,浏览器会自动忽略过期项
完整工具函数示例
以下是一个生产可用的封装:
const Cookie = {
get(name) {
const match = document.cookie.match(new RegExp(`(^| )${name}=([^;]+)`));
return match ? decodeURIComponent(match[2]) : undefined;
},
set(name, value, options = {}) {
const { expires, path = '/', domain, secure, sameSite } = options;
let cookieStr = `${encodeURIComponent(name)}=${encodeURIComponent(value)}; path=${path}`;
if (expires) {
if (typeof expires === 'number') {
const date = new Date();
date.setTime(date.getTime() + expires * 1000);
cookieStr += `; expires=${date.toUTCString()}`;
} else if (expires instanceof Date) {
cookieStr += `; expires=${expires.toUTCString()}`;
}
}
if (domain) cookieStr += `; domain=${domain}`;
if (secure) cookieStr += '; secure';
if (sameSite) cookieStr += `; SameSite=${sameSite}`;
document.cookie = cookieStr;
},
delete(name, options = {}) {
this.set(name, '', { ...options, expires: new Date(0) });
}
};使用示例:Cookie.set('token', 'abc123', { expires: 3600, secure: true });const token = Cookie.get('token');Cookie.delete('token');
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










