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 相关文章推荐
Extjs中ComboBox加载并赋初值的实现方法
Mar 22 Javascript
jQuery中removeClass()方法用法实例
Jan 05 Javascript
angularjs客户端实现压缩图片文件并上传实例
Jul 06 Javascript
Javascript使用uploadify来实现多文件上传
Nov 16 Javascript
基于jQuery实现左侧菜单栏可折叠功能
Dec 27 Javascript
基于bootstrap风格的弹框插件
Dec 28 Javascript
微信小程序实现图片轮播及文件上传
Apr 07 Javascript
解决IE7中使用jQuery动态操作name问题
Aug 28 jQuery
JS中Promise函数then的奥秘探究
Jul 30 Javascript
详解Axios 如何取消已发送的请求
Oct 20 Javascript
vue多层嵌套路由实例分析
Mar 19 Javascript
vue.js 使用原生js实现轮播图
Apr 26 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
Godaddy空间Zend Optimizer升级方法
2010/05/10 PHP
windows下升级PHP到5.3.3的过程及注意事项
2010/10/12 PHP
php正则表达式(regar expression)
2011/09/10 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
修复IE9&amp;safari 的sort方法
2011/10/21 Javascript
FireBug 调试JS入门教程 如何调试JS
2013/12/23 Javascript
封装了一个支持匿名函数的Javascript事件监听器
2014/06/05 Javascript
javascript将url中的参数加密解密代码
2014/11/17 Javascript
AngularJS快速入门
2015/04/02 Javascript
NodeJS创建基础应用并应用模板引擎
2016/04/12 NodeJs
实现点击下箭头变上箭头来回切换的两种方法【推荐】
2016/12/14 Javascript
layui实现文件或图片上传记录
2018/08/28 Javascript
vue3.0 CLI - 2.3 - 组件 home.vue 中学习指令和绑定
2018/09/14 Javascript
vue element中axios下载文件(后端Python)
2019/05/10 Javascript
VUE UPLOAD 通过ACTION返回上传结果操作
2020/09/07 Javascript
[46:21]Liquid vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.23
2018/08/24 DOTA
[45:06]完美世界DOTA2联赛PWL S2 Magma vs InkIce 第二场 11.28
2020/12/02 DOTA
python定时器使用示例分享
2014/02/16 Python
利用Python实现颜色色值转换的小工具
2016/10/27 Python
微信跳一跳python自动代码解读1.0
2018/01/12 Python
为什么入门大数据选择Python而不是Java?
2018/03/07 Python
python实现字符串和字典的转换
2018/09/29 Python
python 实现在tkinter中动态显示label图片的方法
2019/06/13 Python
python报错: 'list' object has no attribute 'shape'的解决
2020/07/15 Python
python 批量将中文名转换为拼音
2021/02/07 Python
简单介绍HTML5中的文件导入
2015/05/08 HTML / CSS
高性能装备提升营地:Kammok
2019/02/27 全球购物
Currentbody澳大利亚:美容仪专家
2019/11/11 全球购物
药学职务聘任书
2014/03/29 职场文书
工业自动化专业自荐信范文
2014/04/10 职场文书
吨的认识教学反思
2014/04/27 职场文书
作风转变年心得体会
2014/10/22 职场文书
2015年音乐教学工作总结
2015/07/22 职场文书
2016年优秀共青团员事迹材料
2016/02/25 职场文书
Redis5之后版本的高可用集群搭建的实现
2021/04/27 Redis
Springboot配置suffix指定mvc视图的后缀方法
2021/07/03 Java/Android