Javascript读取cookie函数代码


Posted in Javascript onOctober 16, 2010

用法:
一、设置cookie

var cookie = new JSCookie(); 
// 普通设置 
cookie .SetCookie("key1","val1"); 
// 过期时间为一年 
var expire_time = new Date(); 
expire_time.setFullYear(expire_time.getFullYear() + 1); 
cookie .SetCookie("key2","val2",expire_time); 
// 设置域及路径,带过期时间 
cookie .SetCookie("key3","val3",expire_time,".cnblogs.com","/"); 
// 设置带子键的cookie,子键分别是k1,k2,k3 
cookie .SetCookie("key4","k1=1&k2=2&k3=3");

二、读取cookie

// 简单获取 
cookie .GetCookie("key1"); 
cookie .GetCookie("key2"); 
cookie .GetCookie("key3"); 
cookie .GetCookie("key4"); 
// 获取key4的子键k1值 
cookie .GetChild("key4","k1");

三、删除

cookie .Expire("key1"); 
cookie .Expire("key2"); 
cookie .Expire("key3"); 
cookie .Expire("key4");

示例:

<script type="text/javascript"> 
String.prototype.Trim = function() 
{ 
return this.replace(/^\s+/g,"").replace(/\s+$/g,""); 
} 
function JSCookie() 
{ 
this.GetCookie = function(key) 
{ 
var cookie = document.cookie; 
var cookieArray = cookie.split(';'); 
var getvalue = ""; 
for(var i = 0;i<cookieArray.length;i++) 
{ 
if(cookieArray[i].Trim().substr(0,key.length) == key) 
{ 
getvalue = cookieArray[i].Trim().substr(key.length + 1); 
break; 
} 
} 
return getvalue; 
}; 
this.GetChild = function(cookiekey,childkey) 
{ 
var child = this.GetCookie(cookiekey); 
var childs = child.split('&'); 
var getvalue = ""; 
for(var i = 0;i < childs.length;i++) 
{ 
if(childs[i].Trim().substr(0,childkey.length) == childkey) 
{ 
getvalue = childs[i].Trim().substr(childkey.length + 1); 
break; 
} 
} 
return getvalue; 
}; 
this.SetCookie = function(key,value,expire,domain,path) 
{ 
var cookie = ""; 
if(key != null && value != null) 
cookie += key + "=" + value + ";"; 
if(expire != null) 
cookie += "expires=" + expire.toGMTString() + ";"; 
if(domain != null) 
cookie += "domain=" + domain + ";"; 
if(path != null) 
cookie += "path=" + path + ";"; 
document.cookie = cookie; 
}; 
this.Expire = function(key) 
{ 
expire_time = new Date(); 
expire_time.setFullYear(expire_time.getFullYear() - 1); 
var cookie = " " + key + "=e;expires=" + expire_time + ";" 
document.cookie = cookie; 
} 
} 
</script>

用正则的方法读取cookie值
由于asp的cookie是经过url编码的,所以读之前要unescape一下。

下面是我用正则的方法取cookie,包括单值和多值:

/************************************************** 
参数说明: 
sMainName Cookie名 
sSubName Cookie子键名,留空表示单值Cookie 
**************************************************/ 
function GetCookie(sMainName, sSubName) 
{ 
var re = new RegExp((sSubName ? sMainName + "=(?:.*?&)*?" + sSubName + "=([^&;$]*)" : sMainName + "=([^;$]*)"),"i"); 
return re.test(unescape(document.cookie)) ? RegExp["$1"] : ""; 
}
Javascript 相关文章推荐
javawscript 三级菜单的实现原理
Jul 01 Javascript
javascript高级学习笔记整理
Aug 14 Javascript
js实现倒计时时钟的示例代码
Dec 17 Javascript
用js判断输入是否为中文的函数
Mar 10 Javascript
javascript自定义的addClass()方法
May 28 Javascript
使用Node.js配合Nginx实现高负载网络
Jun 28 Javascript
基于bootstrap插件实现autocomplete自动完成表单
May 07 Javascript
深入理解js generator数据类型
Aug 16 Javascript
Vue系列:通过vue-router如何传递参数示例
Jan 16 Javascript
vue-for循环嵌套操作示例
Jan 28 Javascript
详解微信图片防盗链“此图片来自微信公众平台 未经允许不得引用”的解决方案
Apr 04 Javascript
JavaScript中的宏任务和微任务详情
Nov 27 Javascript
JavaScript 拾碎[三] 使用className属性
Oct 16 #Javascript
javascript使用eval或者new Function进行语法检查
Oct 16 #Javascript
自己整理的一个javascript日期处理函数
Oct 16 #Javascript
理解Javascript_10_对象模型
Oct 16 #Javascript
理解Javascript_09_Function与Object
Oct 16 #Javascript
理解Javascript_08_函数对象
Oct 15 #Javascript
javascript instanceof 内部机制探析
Oct 15 #Javascript
You might like
世界第一个无线广播电台 KDKA
2021/03/01 无线电
检测png图片是否完整的php代码
2010/09/06 PHP
纯php生成随机密码
2015/10/30 PHP
Extjs学习笔记之四 工具栏和菜单
2010/01/07 Javascript
yepnope.js 异步加载资源文件
2011/09/08 Javascript
JavaScript 盒模型 尺寸深入理解
2012/12/31 Javascript
jQuery :first选择器使用介绍
2013/08/09 Javascript
jQuery实现在列表的首行添加数据
2015/05/19 Javascript
jQuery中 delegate使用的问题
2015/07/03 Javascript
jQuery使用animate创建动画用法实例
2015/08/07 Javascript
jQuery实现输入框下拉列表树插件特效代码分享
2015/08/27 Javascript
javascript中for/in循环及使用技巧
2015/09/01 Javascript
JS判断一个数是否是水仙花数
2017/06/11 Javascript
Angular4学习笔记之实现绑定和分包
2017/08/01 Javascript
JavaScript 2018 中即将迎来的新功能
2018/09/21 Javascript
jquery使用FormData实现异步上传文件
2018/10/25 jQuery
js实现坦克移动小游戏
2019/10/28 Javascript
在Python下进行UDP网络编程的教程
2015/04/29 Python
Python自动生产表情包
2017/03/17 Python
python urllib爬取百度云连接的实例代码
2017/06/19 Python
python实现识别手写数字 python图像识别算法
2020/03/23 Python
Python中请不要再用re.compile了
2019/06/30 Python
Python实现检测文件的MD5值来查找重复文件案例
2020/03/12 Python
俄罗斯名牌服装网上商店:UNIQUE FABRIC
2019/07/25 全球购物
如何启动时不需输入用户名与密码
2014/05/09 面试题
金鑫耀Java笔试题
2014/09/06 面试题
人力资源管理毕业求职信
2014/08/05 职场文书
授权委托书(法人单位用)
2014/09/29 职场文书
副总经理岗位职责范本
2014/09/30 职场文书
幼儿学前班评语
2014/12/29 职场文书
学生不参加考试检讨书
2015/02/19 职场文书
给男朋友的道歉短信
2015/05/12 职场文书
2015年主婚人婚礼致辞
2015/07/28 职场文书
大学生活委员竞选稿
2015/11/21 职场文书
go语言中GOPATH GOROOT的作用和设置方式
2021/05/05 Golang
仅用几行Python代码就能复制她的U盘文件?
2021/06/26 Python