Cookie 是一种存储在用户计算机上的小文件,包含了与某个网站相关的用户信息。浏览器每次向服务器发送请求时,会将 Cookie 信息附加在 HTTP 请求头部中,服务器端可以通过从头部解析得到的 Cookie 信息来判断用户状态并作出相应的响应。
JS 读取 Cookie 方法总结
什么是 Cookie?
Cookie 是一种存储在用户计算机上的小文件,包含了与某个网站相关的用户信息。浏览器每次向服务器发送请求时,会将 Cookie 信息附加在 HTTP 请求头部中,服务器端可以通过从头部解析得到的 Cookie 信息来判断用户状态并作出相应的响应。
如何读取 Cookie?
以下是几种常用的 JS 读取 Cookie 的方法:
1. document.cookie
通过document.cookie
可以读取当前页面请求中携带的所有 Cookie 信息,返回的是一个由键值对字符串组成的字符串。示例如下:
const cookie = document.cookie;
console.log(cookie);
// 输出示例: "__cfduid=d36072b4f98835a4871a9b11d0f4218991592144044; _ga=GA1.2.1470674.1595726819; Hm_lpvt_620bfd7553724d8e4f3ac4331a0f6295=1597183958; Hm_lvt_620bfd7553724d8e4f3ac4331a0f6295=1595726819"
需要注意的是,document.cookie
返回的字符串中每个键值对之间都以分号加空格分隔。
2. 使用 Regex 匹配
如果想要读取某个具体键的值,可以使用正则表达式进行匹配。示例如下:
function getCookieValue(key) {
const regex = new RegExp(`${key}=([^;]+)`);
const match = document.cookie.match(regex);
return match && match[1];
}
console.log(getCookieValue('username'));
// 假设当前 Cookie 中有键为 'username',且其值为 'tom',则输出 'tom'
上述代码将会读取当前页面中所有的 Cookie 信息,使用正则表达式匹配到键为 'username' 的键值对,并返回对应的值。
3. 使用第三方库
除了手动编写正则表达式进行匹配以外,还可以使用一些第三方库,如 js-cookie
。使用该库可以通过简单的 API 快速读取、设置和删除 Cookie。示例如下:
// 先安装 js-cookie 库,安装命令: npm install js-cookie
import Cookies from 'js-cookie';
// 获取键为 'username' 的 Cookie
const username = Cookies.get('username');
// 设置一个名为 'password' 的 Cookie
Cookies.set('password', '123456', { expires: 7 });
// 删除键为 'username' 的 Cookie
Cookies.remove('username');
在以上代码中,我们先使用 import
语句引入了 js-cookie
库。然后,通过 Cookies.get
方法获取当中键为 'username'
的 Cookie 值;通过 Cookies.set
方法设置一个名为 'password'
的 Cookie 值为 '123456'
,并设置其过期时间为 7 天;最后,通过 Cookies.remove
方法删除名为 'username'
的 Cookie。
小结
本文介绍了 JS 读取 Cookie 的三种方法,包括 document.cookie
、使用正则表达式匹配和使用第三方库 js-cookie
。具体使用时需要视情况而定,但这些方法足够满足大多数场景。
本文标题为:js读取cookie方法总结
基础教程推荐
- 一步步教大家编写酷炫的导航栏js+css实现 2024-01-23
- PowerShell小技巧实现IE Web自动化 2024-01-05
- 容易遗忘的HTML知识点 2023-10-28
- 前端从浏览器的渲染到性能优化 2022-11-13
- 利用CSS3实现文本框的清除按钮相关的一些效果 2024-01-21
- 微信小程序实现传递多个参数与事件处理 2024-01-05
- JS基础---html中事件冒泡和捕获 2023-10-28
- css 盒模型 文档流 几种清除浮动的方法实例详解 2023-12-21
- 关于 sencha touch:ExtJS、SenchaTouch – FormPanel 无 2022-09-15
- js select支持手动输入功能实现代码 2023-07-10