pCookie.js

(function(){

    var PotatogCookie = {};

    //设置cookie
PotatogCookie.set = function(key, value, delay)
{
//默认cookie为七天之后过期 3s 4m 5h 7d 秒 分 时 天
if(delay == "undefined")delay = "7d";
delay = delay.toLowerCase(); var expireDate = new Date(); var num = parseInt(delay);
if(delay.indexOf("d") !== -1)
{
expireDate.setDate(expireDate.getDate() + num);
}
else if(delay.indexOf("h") !== -1)
{
expireDate.setHours(expireDate.getHours() + num);
}
else if(delay.indexOf("m") !== -1)
{
expireDate.setMinutes(expireDate.getMinutes() + num);
}
else if(delay.indexOf("s") !== -1)
{
expireDate.setSeconds(expireDate.getSeconds() + num);
}
else
{
expireDate.setDate(expireDate.getDate() + num);
}
if(typeof value == "object")
{
value = JSON.stringify(value);
}
value = escape(value);
document.cookie = key + "=" + value + ";expires=" + expireDate.toGMTString();
return this.get(key);
} //得到cookie 如果不存在 返回 undefined
PotatogCookie.get = function(key)
{
var objCookie = {};
var cookie = document.cookie;
var keyValueList = cookie.split(";");
for(var index in keyValueList)
{
var keyValue = keyValueList[index].split("=");
var k = keyValue[0].trim();
var v = keyValue[1];
         v = unescape(v);
v = this.decodeJson(v);
objCookie[k] = v;
} if(typeof key == "undefined")
{
return objCookie;
} return objCookie[key];
}
//删除cookie
PotatogCookie.del = function(key)
{
//删除所有cookie
if(typeof key == "undefined")
{
var cookieList = this.get();
for(key in cookieList)
{
this.del(key);
}
return true;
}
else
{
if(this.get(key) == "undefined")
{
return false;
}
else
{
return this.set(key,'',"0s");
}
}
}
PotatogCookie.decodeJson = function(value)
{
//数组转成的对象字符串
var regAryStr = /^\[[\s|\S]*\]$/;
//对象转成的对象字符串
var regObjStr = /^\{([\"\s|\S]+\"\:\"[\s|\S]*)+\"\}$/;
if(regAryStr.test(value))
{
return eval("(" + value + ")");
}
if(regObjStr.test(value))
{
return JSON.parse(value);
}
return value;
}
window.pCookie = PotatogCookie;
})(window);

demo.html

使用方式

设置cookie

pCookie.set("name","张三","7d");

读取cookie 如果不存在 返回undefined

var name = pCookie.get("name");不传参表示获得所有

删除cookie

pCookie.del("name");不传参表示删除所有

js cookie 操作 封装的更多相关文章

  1. js cookie的封装和调用

    <script> function setCookie(cname,cvalue,exdays){ var d = new Date(); d.setTime(d.getTime()+(e ...

  2. js cookie操作

    //写Cookie function writeCookie(name, value) { var expire = new Date(); expire.setFullYear(expire.get ...

  3. js cookie 操作

    <html> <head> <meta charset="utf-8"> <title>Javascript cookie</ ...

  4. JS封装cookie操作函数实例(设置、读取、删除)

    本文实例讲述了JS封装cookie操作函数.分享给大家供大家参考,具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ...

  5. js cookie创建读取删除函数封装

    js cookie创建读取删除函数封装 一.总结 都是为了方便操作,这样弄了很方便 1.创建cookie的函数封装的作用:方便设置过期时间expire,方便设置键和值 2.查询cookie的数据封装的 ...

  6. js简单操作Cookie

    贴一段js简单操作Cookie的代码: //获取指定名称的cookie的值 function getCookie(objName) { var arrStr = document.cookie.spl ...

  7. js中cookie操作

    js中操作Cookie的几种常用方法 * cookie中存在域的概念,使用path和domain区分: * 在同一域中的set和del可以操作同一名称的cookie,但不在同一域中的情况下,则set无 ...

  8. js 判断js函数、变量是否存在 JS保存和删除cookie操作,判断cookie是否存在的方法

    //是否存在指定函数 function isExitsFunction(funcName) {    try {        if (typeof(eval(funcName)) == " ...

  9. DES加密解密 与 Cookie的封装(C#与js互相加密解密)

    2D JS框架 - DES加密解密 与 Cookie的封装(C#与js互相加密解密)   这次实现了JS端的DES加密与解密,并且C#端也能正确解析DES的密文(反之也实现了) 使用的代码如下,非常方 ...

随机推荐

  1. 试试Markdown哈

    目录 一级标题 二级标题 三级标题 二级标题? 我擦了? 这什么语法.文字下面加-号,实现二级标题? 看看是几级标题 还真的是二级标题. ...... # 看来四个空格是个,嗯,默认的东西 ??中间是 ...

  2. Docker run 命令

    docker run -d -p 8084:80 --name weather --restart always --link fme-postgis 192.168.1.220:5000/weath ...

  3. DevExpress v18.2新版亮点——DevExtreme篇(二)

    行业领先的.NET界面控件2018年第二次重大更新——DevExpress v18.2日前正式发布,本站将以连载的形式为大家介绍新版本新功能.本文将介绍了DevExtreme Complete Sub ...

  4. Ubuntu下Caffe实现物体分类

    参考链接: ubuntu下配置Caffe:https://blog.csdn.net/a_z666666/article/details/72853346 https://www.cnblogs.co ...

  5. Tensorflow实战系列之二:

    还没想好,可能是人脸检测或者物体检测,或者加上动态检测~~

  6. Linux----Github环境搭建

    前面介绍了在Windows环境上安转GitHub环境,原本以为打包成jar,发布到Linux不需要再安转Git,但是因为我们使用了Config-Server配置中心,远程配置来启动,所以需要在Linu ...

  7. Oracle 多行变一行

    https://blog.csdn.net/rainyspring4540/article/details/50231521

  8. python 函数返回值(总结)

    关键字:return 没有返回值的叫过程 def test1(): msg="我是一个过程" print(msg) 有return的叫函数 def test02(): msg=&q ...

  9. MyBatis通过Mapper动态代理来实现curd操作

    MyBatis官方推荐使用mapper代理方法开发mapper接口,程序员不需要编写mapper实现类,使用mapper代理方法时,输入参数可以使用pojo包装对象或者map对象,保证dao的通用性 ...

  10. C# 事件 解析

    1.什么是事件,事件和委托什么关系? 事件?事件,就是,比如按一个按钮,弹出你好对话框,就是一个事件. 事件和委托? 事件就是委托的一种呀,委托可以理解为回调机制,回调函数. 2. 怎么理解C#事件, ...