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 监听textarea中按键事件
Oct 08 Javascript
基于jquery的滚动条滚动固定div(附演示下载)
Oct 29 Javascript
JQuery-tableDnD 拖拽的基本使用介绍
Jul 04 Javascript
Javascript中的delete操作符详细介绍
Jun 06 Javascript
JavaScript中的lastIndexOf()方法使用详解
Jun 06 Javascript
JavaScript的Date()方法使用详解
Jun 09 Javascript
微信小程序 数据封装,参数传值等经验分享
Jan 09 Javascript
vue实现表格增删改查效果的实例代码
Jul 18 Javascript
深入浅出webpack之externals的使用
Dec 04 Javascript
Angular2使用vscode断点调试ts文件的方法
Dec 13 Javascript
JavaScript array常用方法代码实例详解
Sep 02 Javascript
在antd中setFieldsValue和defaultVal的用法
Oct 29 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
用PHP制作静态网站的模板框架
2006/10/09 PHP
对象特征检测法判断浏览器对javascript对象的支持
2009/07/25 Javascript
javascript 支持链式调用的异步调用框架Async.Operation
2009/08/04 Javascript
JavaScript验证图片类型(扩展名)的函数分享
2014/05/05 Javascript
JavaScript跨域方法汇总
2014/10/16 Javascript
jQuery中ajax的post()方法用法实例
2014/12/26 Javascript
JavaScript中的Primitive对象封装介绍
2014/12/31 Javascript
JavaScript iframe数据共享接口实现方法
2016/01/06 Javascript
javascript实现tab响应式切换特效
2016/01/29 Javascript
jQuery实现鼠标滚动图片延迟加载效果附源码下载
2016/06/28 Javascript
Bootstrap实现带暂停功能的轮播组件(推荐)
2016/11/25 Javascript
JS实现图片预览的两种方式
2017/06/27 Javascript
jquery对table做排序操作的实例演示
2017/08/10 jQuery
详解Vue2.0组件的继承与扩展
2018/11/23 Javascript
关于vue2强制刷新,解决页面不会重新渲染的问题
2019/10/29 Javascript
vue集成一个支持图片缩放拖拽的富文本编辑器
2021/01/29 Vue.js
Python实现去除代码前行号的方法
2015/03/10 Python
python实现将文本转换成语音的方法
2015/05/28 Python
Python实现生成随机数据插入mysql数据库的方法
2017/12/25 Python
用Eclipse写python程序
2018/02/10 Python
对python中的for循环和range内置函数详解
2018/04/17 Python
如何从csv文件构建Tensorflow的数据集
2020/09/21 Python
python switch 实现多分支选择功能
2020/12/21 Python
浅谈css3中的渐进增强和优雅降级
2017/12/01 HTML / CSS
html5标记文字_动力节点Java学院整理
2017/07/11 HTML / CSS
网络工程师的自我评价
2013/10/02 职场文书
国庆节文艺活动方案
2014/02/03 职场文书
个人党性剖析材料
2014/02/03 职场文书
好习惯伴我成长演讲稿
2014/05/21 职场文书
关于美容院的活动方案
2014/08/14 职场文书
党支部三严三实对照检查材料思想汇报
2014/09/29 职场文书
2015年劳动部工作总结
2015/05/23 职场文书
2015年中学团委工作总结
2015/07/22 职场文书
一道JS算法面试题——冒泡、选择排序
2021/04/21 Javascript
python中的class_static的@classmethod的巧妙用法
2021/06/22 Python
Python echarts实现数据可视化实例详解
2022/03/03 Python