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 相关文章推荐
跨域请求之jQuery的ajax jsonp的使用解惑
Oct 09 Javascript
javascript浏览器兼容教程之事件处理
Jun 09 Javascript
Javascript实现Web颜色值转换
Feb 05 Javascript
jQuery插件PageSlide实现左右侧栏导航菜单
Apr 12 Javascript
JQuery入门基础小实例(1)
Sep 17 Javascript
jquery attr()设置和获取属性值实例教程
Sep 25 Javascript
JavaScript 监控微信浏览器且自带返回按钮时间
Nov 27 Javascript
Vue2.0实现1.0的搜索过滤器功能实例代码
Mar 20 Javascript
Vue Router的懒加载路径的解决方法
Jun 21 Javascript
解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题
Sep 27 Javascript
浅谈Node 异步IO和事件循环
May 05 Javascript
vue - props 声明数组和对象操作
Jul 30 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
不用mod_rewrite直接用php实现伪静态化页面代码
2008/10/04 PHP
PHP正则验证Email的方法
2015/06/15 PHP
php实现数组中索引关联数据转换成json对象的方法
2015/07/08 PHP
php计划任务之验证是否有多个进程调用同一个job的方法
2015/12/07 PHP
jQuery阻止事件冒泡具体实现
2013/10/11 Javascript
jquery如何实现锚点链接之间的平滑滚动
2013/12/02 Javascript
使用微信小程序开发前端【快速入门】
2016/12/05 Javascript
canvas实现动态小球重叠效果
2017/02/06 Javascript
vue+axios实现文件下载及vue中使用axios的实例
2018/09/21 Javascript
js打开word文档预览操作示例【不是下载】
2019/05/23 Javascript
解决Nuxt使用axios跨域问题
2020/07/06 Javascript
Python基础语言学习笔记总结(精华)
2017/11/14 Python
Pycharm设置界面全黑的方法
2018/05/23 Python
Django contenttypes 框架详解(小结)
2018/08/13 Python
Python函数any()和all()的用法及区别介绍
2018/09/14 Python
浅析Python 实现一个自动化翻译和替换的工具
2019/04/14 Python
python3文件复制、延迟文件复制任务的实现方法
2019/09/02 Python
给你一面国旗 教你用python画中国国旗
2019/09/24 Python
关于Keras Dense层整理
2020/05/21 Python
教你如何用python操作摄像头以及对视频流的处理
2020/10/12 Python
HTML5边玩边学(3)像素和颜色
2010/09/21 HTML / CSS
html5录音功能实战示例
2019/03/25 HTML / CSS
兰蔻美国官网:Lancome美国
2017/04/25 全球购物
重新定义牛仔布,100美元以下:Warp + Weft
2018/07/25 全球购物
Juicy Couture Beauty官方网站:香水和化妆品
2019/03/12 全球购物
美国在线面料商店:Fashion Fabrics Club
2020/01/31 全球购物
英国100%防污和防水的靴子:Muck Boot Company
2020/09/08 全球购物
Tessabit美国:集世界奢侈品和设计师品牌的意大利精品买手店
2020/06/29 全球购物
英语商务邀请函范文
2014/01/16 职场文书
2014年创先争优活动总结
2014/05/04 职场文书
感恩教育观后感
2015/06/17 职场文书
读《钢铁是怎样炼成的》有感:百炼方成钢
2019/11/05 职场文书
Oracle安装TNS_ADMIN环境变量设置参考
2021/11/01 Oracle
java executor包参数处理功能 
2022/02/15 Java/Android
「睡美人」爱洛公主粘土人开订
2022/03/22 日漫
彻底弄懂Python中的回调函数(callback)
2022/06/25 Python