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

yizhihongxing

如何设置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日

相关文章

  • js学习笔记之class类、super和extends关键词

    JS学习笔记之Class类、super和extends关键词攻略 介绍 在ES6之前,JavaScript是一门纯粹的面向对象语言,而没有类的概念,而是采用基于原型的继承方式。在ES6之后,JavaScript引入了Class类、super和extends关键词,使得JavaScript的面向对象变得更加完善。Class语法让JavaScript的对象声明,…

    JavaScript 2023年6月10日
    00
  • js时间戳和c#时间戳互转方法(推荐)

    下面为您详细讲解“js时间戳和c#时间戳互转方法(推荐)”的完整攻略。 背景介绍 在前端开发和后端开发的交互过程中,可能会涉及到时间的转换,例如前端的js时间戳和后端的c#时间戳。在这种情况下,需要掌握js时间戳和c#时间戳的互转方法。 js时间戳和c#时间戳的定义 js时间戳:指距离1970年1月1日00:00:00的毫秒数。可以使用 Date.now()…

    JavaScript 2023年5月27日
    00
  • JavaScript DOM节点添加示例

    当我们需要对网页中的元素进行动态的增删改时,JavaScript就是我们的好帮手之一。在JavaScript中,通过操作网页文档的对象模型(DOM)来实现对页面元素的增删改查。其中节点的添加,是常用的一种操作。 添加DOM节点的方法 在JavaScript中,有多种方式可以添加DOM节点,以下是其中的两种: 1. createElement()方法 crea…

    JavaScript 2023年6月10日
    00
  • 关于JavaScript递归经典案例题详析

    当我们学习 JavaScript 的时候,递归经典案例题几乎是必不可少的一个部分,因为它能够帮助我们更好的理解递归这种算法思想。在这篇文章中,我将为大家详细讲解如何解决递归经典案例题,该攻略包含以下几个步骤: 第一步:理解什么是递归 在学习递归经典案例题之前,我们需要先理解什么是递归。递归是一种算法思想,指的是一个函数调用自身的过程。递归可以帮助我们更好的解…

    JavaScript 2023年5月28日
    00
  • javascript 函数调用的对象和方法

    JavaScript 函数调用的对象和方法是 JavaScript 中一个非常重要的概念,理解这个概念对于编写高质量的 JavaScript 代码非常有帮助。下面,我将为您详细讲解 JavaScript 函数调用的对象和方法。 函数调用的对象 JavaScript 函数可以作为另一个对象的属性值使用,这时候函数称为该对象的一个方法。在调用该方法时,方法内的关…

    JavaScript 2023年5月27日
    00
  • JavaScript判断是否手机浏览器的五种方法

    下面我将给出“JavaScript判断是否手机浏览器的五种方法”的完整攻略,具体攻略如下: 方法一:根据userAgent判断 利用navigator.userAgent获取当前浏览器的userAgent字符串,判断是否包含移动设备的关键字,如“Android”、“iPhone”等。 const isMobile = () => { return /A…

    JavaScript 2023年6月11日
    00
  • AJAX XMLHttpRequest对象创建使用详解

    AJAX,全称Asynchronous JavaScript and XML,即异步的JavaScript和XML。它可以使Web应用程序实现异步通信,避免页面刷新,提升用户体验。 XMLHttpRequest对象是实现AJAX的核心,它是一个在JavaScript中被预定义的对象,用于与服务器异步交换数据。下面我们来详细讲解XMLHttpRequest对象…

    JavaScript 2023年6月11日
    00
  • 浅谈js中对象的使用

    浅谈JS中对象的使用 Javascript是一门面向对象的语言,因此对象是其核心之一。对象是JS编程中的重要特性之一,也是数据在JS中的主要形式。本篇文章将介绍JS中对象的基础概念、使用方法及常用技巧。 什么是对象 在JavaScript中,对象是一个值(value),这个值可以被当作一个容器,存储一组属性/方法(properties/methods)。每个…

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