js实用方法记录-简单cookie操作

js实用方法记录-简单cookie操作

设置cookie:setCookie(名称,值,保存时间,保存域); 获取cookie:setCookie(名称); 移除cookie:setCookie(名称,值,-1,保存域);

设置cookie

测试代码:setCookie('test','hello') //保存session级的cookie到根域 测试代码:setCookie('test','hello',30,false) //保存30天且保存到当前全域名

/**
 * 设置cookie
 * @param {string} name cookie名称
 * @param {string} value cookie值
 * @param {number}[expiredays=null] 过期时间 默认session级别 <=0移除cookie
 * @param {bool}[saveRoot=true] 保存的域 默认根域
 */
function setCookie(name, value, expiredays=null,saveRoot=false) {
    var exdate = new Date();
    exdate.setDate(exdate.getDate() + expiredays)
    var cookie = name + "=" + value + ';path=/' + ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString());
    if(saveRoot){
    //适用于一级,二级,本地域名
      var domain =((location.host.match(/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/g) || location.hostname=='localhost')? location.hostname:('.' + (location.host.split('.')[2]!=undefined?(location.host.split('.')[1]+'.'+location.host.split('.')[2]):location.host)));
      cookie+=(';domain='+domain);
    }
    document.cookie = cookie;
}

获取cookie

测试代码: getCookie('test')=='hello'

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏野路子程序员

Ubuntu桌面环境下安装Navicat Premium数据库管理工具 解决破解乱码

6056
来自专栏

后端开源软件集合

缓存系统:memcached(group cache)、redis、mongodb、Couchbase(CouchDB、Membase、CouchOne) ht...

2509
来自专栏后端技术探索

RabbitMQ 系列AMQP协议

ZeroMQ和RabbitMQ是目前两种业界最为流行的消息队列,ZeroMQ的优势在于性能和轻量级,使用上类似于Socket通信,帮助应用封装了底层通信的细节,...

932
来自专栏Java架构沉思录

五分钟入门消息中间件

众所周知,消息中间件是大型分布式系统中不可或缺的重要组件。它使用简单,却解决了不少难题,比如异步处理,系统耦合,流量削锋,分布式事务管理等。实现了一个高性能,高...

2073
来自专栏Pythonista

centos7之saltstack安装

查阅来自salt官网:http://docs.saltstack.cn/topics/installation/rhel.html

801
来自专栏MessageQueue

Pulsar-Consumer

“Pulsar is a distributed pub-sub messaging platform with a very flexible messagi...

1672
来自专栏白驹过隙

RabbitMQ - TcpConnection析构引发的一次handshake_timeout

2726
来自专栏zcqshine's blog

CodeRunner swift设置

42311
来自专栏云计算教程系列

使用dig执行手动DNS查询

dig 是一个命令行DNS查询实用程序,允许您诊断域名解析问题。如果您没有域名,建议您先去这里注册一个域名,将域名解析到您的服务器,您可以使用腾讯云云解析进行快...

3073
来自专栏编程一生

一个高性能、轻量级的分布式内存队列系统--beanstalk

1942

扫码关注云+社区

领取腾讯云代金券