js设置cookie过期及清除浏览器对应名称的cookie

如何设置Cookie过期时间

Cookie是用来存储一些数据的,在某些情况下,我们希望对存储的cookie设置过期时间,来更好地实现一些功能。下面是利用JS设置cookie过期时间的方法:

  1. 利用JS设置cookie
document.cookie = "cookieName=cookieValue;expires=Thu, 18 Dec 2022 12:00:00 GMT; path=/"; 

上面的代码中,我们设置了cookie名称为cookieName,cookie值为cookieValue,过期时间为2022年12月18日12点,过期时间使用GMT格式,path是cookie的有效路径。

  1. 设置cookie过期时间
function setCookie(city, days) {
  var date = new Date();
  var expireDay = date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
  var expires = "expires=" + expireDay.toUTCString();
  document.cookie = city + "=" + city + "; " + expires;
}

上面的代码中,我们利用了Date对象获取当前时间,并且利用setTime()方法获取了过期时间。然后使用toUTCString()方法将过期时间转换为UTC时间格式,最后设置expires为转换后的时间字符串,利用document.cookie设置cookie名称为city,值也为city,并设置过期时间。

如何清除浏览器对应名称的Cookie

设置过期时间能有效防止cookie长时间存在浏览器中,但是有些时候我们需要清除掉某个特定的cookie。下面是利用JS清除浏览器对应名称的cookie的方法:

function clearCookie(name) {
  var exp = new Date();
  exp.setTime(exp.getTime() - 1);
  var cval = getCookie(name);
  if (cval != null) {
    document.cookie = name + "=" + cval + ";expires=" + exp.toUTCString();
  }
}

function getCookie(name) {
  var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
  if (arr = document.cookie.match(reg)) {
    return unescape(arr[2]);
  } else {
    return null;
  }
}

上面代码中的clearCookie函数接收cookie名称作为参数。该函数获取cookie的值,判断该值是否为null,然后将exp设置为当前日期的前一天的时间,最后重写cookie,并将过期时间设置为exp。

示例1:添加一个30天的cookie

var date = new Date();
date.setTime(date.getTime() + (30 * 24 * 60 * 60 * 1000)); // 30天
var expires = "expires=" + date.toUTCString();
document.cookie = "username=John Doe;" + expires + "; path=/";

上面的代码中,我们进行了如下操作:

  1. 创建一个名为username的cookie,值为John Doe
  2. 计算出30天后的日期,并将其转换为UTS时间格式。
  3. 设置expires属性为计算出的时间,并设置cookie的有效路径为根目录。

示例2:清除名为username的cookie

function clearCookie(name) {
  var exp = new Date();
  exp.setTime(exp.getTime() - 1);
  var cval = getCookie(name);
  if (cval != null) {
    document.cookie = name + "=" + cval + ";expires=" + exp.toUTCString();
  }
}

function getCookie(name) {
  var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
  if (arr = document.cookie.match(reg)) {
    return unescape(arr[2]);
  } else {
    return null;
  }
}

clearCookie('username');

上面的代码中,我们先定义了clearCookie和getCookie两个函数。然后在clearCookie函数中调用getCookie函数以获取cookie的值。最后使用toUTCString()方法将过期时间设置为当前时间减去1毫秒,清除这个cookie。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:js设置cookie过期及清除浏览器对应名称的cookie - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • JSON键值对序列化和反序列化解析

    什么是JSON键值对序列化和反序列化 JSON是一种轻量级的数据交换格式,由于其易于阅读和编写的特性,被广泛用于web应用程序中的数据传输。在JSON中,使用键值对表示数据,所以JSON序列化就是将键值对转换为字符串,而JSON反序列化就是将字符串转换为键值对。 JSON的序列化 JSON序列化可以使用JSON.stringify()方法实现。它将Javas…

    JavaScript 2023年5月27日
    00
  • 基于js实现逐步显示文字输出代码实例

    下面详细讲解一下基于js实现逐步显示文字输出的完整攻略。 1. 确定需求 在实现逐步显示文字的功能之前,首先需要确定需求。通常情况下,逐步显示文字的实现一般用于网站教程或者精美页面展示的文本展现,以吸引用户的注意,并且可以让用户有序地看到文本的信息,避免一次性将所有信息展现给用户,造成信息过载。 因此,在实现逐步显示文字的功能之前要先确认以下需求: 显示的文…

    JavaScript 2023年5月28日
    00
  • JS document文档的简单操作完整示例

    JS document 文档是操作网页元素的核心接口。它可以通过 js 代码来获取、修改和新增 HTML 元素,以实现网页动态变化。接下来将通过两个示例介绍基本的 JS document 操作。 示例1:获取元素 在 HTML 文档中,标签是最基本的元素,通过 JS document 可以获取 HTML 中指定标签的元素。获取标签元素需要使用 getElem…

    JavaScript 2023年6月10日
    00
  • JavaScript浮点数及运算精度调整详解

    JavaScript浮点数及运算精度调整详解 概述 在JavaScript中,使用浮点数进行运算时会出现精度不准确的情况,这是由于JavaScript中的浮点数采用二进制存储,在进行运算时会出现舍入误差的情况。本文将详细讲解浮点数精度问题,以及如何调整浮点数运算的精度来避免误差。 浮点数精度问题 在JavaScript中,浮点数采用IEEE 754标准进行存…

    JavaScript 2023年6月10日
    00
  • JS语法也可以有C#的switch表达式

    当你在编写JavaScript时,你可能想使用一种类似于C#语言中switch语句的方式来处理条件分支。在ES2020中,引入了一个新的语法糖——switch表达式,它是对传统switch语句的升级版本,它可以以更简单的方式处理更复杂的逻辑判断。 switch语句 首先,我们来看一下普通的switch语句的例子。 let fruit = "appl…

    JavaScript 2023年5月28日
    00
  • javascript函数的节流[throttle]与防抖[debounce]

    JavaScript函数的节流与防抖 在javascript开发中,有时候我们需要在频繁触发某些事件时,进行性能优化,防止事件处理函数被频繁调用而导致页面出现性能问题,这时,javascript的节流和防抖技术就能派上用场了。 什么是节流 节流(throttle)是一种控制事件触发频率的技术,它会将一定时间内发生的多次事件,限制成只触发一次事件。 具体来说,…

    JavaScript 2023年6月11日
    00
  • js HTML5上传示例代码完整版

    关于“js HTML5上传示例代码完整版”的完整攻略,以下是我整理的内容: 一、前言 在讲如何使用“js HTML5上传示例代码完整版”之前,我们先来了解一下什么是HTML5文件上传。HTML5文件上传是一种现代化、快速、可靠的文件上传方式,与之前的Flash上传相比具有更高效的上传速度和更高的可靠性。 二、主要步骤 使用“js HTML5上传示例代码完整版…

    JavaScript 2023年6月10日
    00
  • Javascript Boolean prototype 属性

    以下是关于JavaScript Boolean.prototype属性的完整攻略。 JavaScript Boolean.prototype属性 JavaScript Boolean.prototype属性是Boolean对象的原型属性,它允许您向所有Boolean对象添加属性和方法。该属性是动态的,可以通过Boolean对象的实例访问。 下面是一个使用Bo…

    JavaScript 2023年5月11日
    00
合作推广
合作推广
分享本页
返回顶部