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 相关文章推荐
javascript 数组排序函数
Aug 20 Javascript
JavaScript让IE浏览器event对象符合W3C DOM标准
Nov 24 Javascript
javascript学习笔记(二十) 获得和设置元素的特性(属性)
Jun 20 Javascript
解析Javascript中中括号“[]”的多义性
Dec 03 Javascript
JQuery控制Radio选中方法分析
May 29 Javascript
JS数组排序技巧汇总(冒泡、sort、快速、希尔等排序)
Nov 24 Javascript
JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并)
May 20 Javascript
webpack 1.x升级过程中的踩坑总结大全
Aug 09 Javascript
Extjs 中的 Treepanel 实现菜单级联选中效果及实例代码
Aug 22 Javascript
JavaScript反射与依赖注入实例详解
May 29 Javascript
JavaScript模板引擎实现原理实例详解
Dec 14 Javascript
Vue 数据响应式相关总结
Jan 28 Vue.js
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
缓存技术详谈―php
2006/12/14 PHP
PHP,ASP.JAVA,JAVA代码格式化工具整理
2010/06/15 PHP
Windows下php+mysql5.7配置教程
2017/05/16 PHP
PHP实现从PostgreSQL数据库检索数据分页显示及根据条件查找数据示例
2018/06/09 PHP
PHP封装mysqli基于面向对象的mysql数据库操作类与用法示例
2019/02/25 PHP
漂亮的widgets,支持换肤和后期开发新皮肤
2007/04/23 Javascript
cnblogs中在闪存中屏蔽某人的实现代码
2010/11/14 Javascript
原生js实现跨浏览器获取鼠标按键的值
2013/04/08 Javascript
JS实现图片翻书效果示例代码
2013/09/09 Javascript
Javascript事件实例详解
2013/11/06 Javascript
Jquery性能优化详解
2014/05/15 Javascript
JS操作HTML自定义属性的方法
2015/02/10 Javascript
js实现TAB切换对应不同颜色的代码
2015/08/31 Javascript
node.js回调函数之阻塞调用与非阻塞调用
2015/11/13 Javascript
JavaScript中的操作符类型转换示例总结
2016/05/30 Javascript
浅谈javascript中的constructor
2016/06/08 Javascript
Ajax与服务器(JSON)通信实例代码
2016/11/05 Javascript
纯javascript版日历控件
2016/11/24 Javascript
基于JavaScript实现轮播图原理及示例
2020/04/10 Javascript
全面介绍vue 全家桶和项目实例
2017/12/27 Javascript
深入理解NodeJS 多进程和集群
2018/10/17 NodeJs
[03:34]2014DOTA2西雅图国际邀请赛 淘汰赛7月15日TOPPLAY
2014/07/15 DOTA
Python缩进和冒号详解
2016/06/01 Python
python 根据pid杀死相应进程的方法
2017/01/16 Python
1 行 Python 代码快速实现 FTP 服务器
2018/01/25 Python
Django urls.py重构及参数传递详解
2019/07/23 Python
如何基于Python制作有道翻译小工具
2019/12/16 Python
CSS3中几个新增加的盒模型属性使用教程
2016/03/01 HTML / CSS
Super-Pharm波兰:药房和香水在一个地方
2020/08/18 全球购物
房地产活动策划方案
2014/05/14 职场文书
应届生求职自荐信
2014/07/04 职场文书
国际商务专业毕业生自我鉴定2014
2014/09/27 职场文书
2014年绩效考核工作总结
2014/12/11 职场文书
goland 清除所有的默认设置操作
2021/04/28 Golang
python 爬取天气网卫星图片
2021/06/07 Python
世界无敌的ICOM IC-R9500宽频接收机
2022/03/25 无线电