📜  在 javascript 中获取 cookie(1)

📅  最后修改于: 2023-12-03 14:50:57.451000             🧑  作者: Mango

在 javascript 中获取 cookie

如果你使用 JavaScript 编写前端页面或应用程序,那么你可能需要获取存储在浏览器 cookie 中的数据。下面是一些 JavaScript 代码片段,可用于获取 cookie 值。

读取一个 cookie

要读取一个 cookie,您可以使用 Document.cookie 属性。这个属性返回一个包含所有 cookie 的字符串,每个 cookie 之间以分号和空格分隔。您可以使用正则表达式或字符串方法来解析字符串,以查找并返回特定的 cookie 值。

function getCookie(name) {
  var cookieStr = document.cookie;
  var cookies = cookieStr.split("; ");
  for (var i = 0; i < cookies.length; i++) {
    var pair = cookies[i].split("=");
    if (pair[0] === name) {
      return pair[1];
    }
  }
  return null;
}

上面的代码定义了一个名为 getCookie 的函数,它接受一个 cookie 名称作为参数,并返回该 cookie 的值。如果找不到该名称的 cookie,该函数返回 null。

创建一个 cookie

要创建一个 cookie,您可以为 Document.cookie 赋一个新值。新cookie 的格式是 name=value,后跟可选 cookie 属性。例如,您可以设置 cookie 的过期时间,使其在特定日期之后自动过期。以下是一个设置 cookie 的函数示例:

function setCookie(name, value, daysToLive) {
  var cookie = name + "=" + encodeURIComponent(value);
  if (typeof daysToLive === "number") {
    var expiry = new Date();
    expiry.setDate(expiry.getDate() + daysToLive);
    cookie += "; expires=" + expiry.toUTCString();
  }
  document.cookie = cookie;
}

该函数接受三个参数:cookie 的名字(字符串),cookie 的值(字符串)和 cookie 的过期时间(天数)。如果未指定过期时间,则 cookie 将在用户关闭浏览器时自动删除。

删除一个 cookie

要删除一个 cookie,您可以将其过期日期设置为过去的某个时间。您仍然需要以前设置的 cookie 名称和值,以便浏览器知道要删除哪个 cookie。以下是一个删除 cookie 的函数示例:

function deleteCookie(name) {
  setCookie(name, "", -1);
}

该函数使用 setCookie 函数,但将过期时间设置为昨天,这将立即使 cookie 失效。删除 cookie 的基本操作是将其值设置为空字符串,并将过期时间设置为过去的日期。

结论

以上是在 JavaScript 中获取 cookie 的一些方法和示例代码。您可以使用这些代码来读取、创建和删除 cookie,以及其他处理浏览器 cookie 的任务。在编写 JavaScript 代码时,请记住安全性和隐私,以确保您的用户数据得到保护。