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 相关文章推荐
js中将多个语句写成一个语句的两种方法小结
Dec 08 Javascript
window.open关于浏览器拦截问题分析及解决方法
Feb 05 Javascript
js获取url参数代码实例分享(JS操作URL)
Dec 13 Javascript
JQuery以JSON方式提交数据到服务端示例代码
May 05 Javascript
JavaScript怎么判断图片是否加载完成以便获取其尺寸
May 08 Javascript
jquery采用oop模式class类的使用示例
Jan 22 Javascript
给angular加上动画效遇到的问题总结
Feb 17 Javascript
聊一聊JavaScript作用域和作用域链
May 03 Javascript
详解Vue项目编译后部署在非网站根目录的解决方案
Apr 26 Javascript
jQuery仿移动端支付宝键盘的实现代码
Aug 15 jQuery
使用vue2.6实现抖音【时间轮盘】屏保效果附源码
Apr 24 Javascript
ES6使用新特性Proxy实现的数据绑定功能实例
May 11 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 批量查询搜狗sogou代码分享
2015/05/17 PHP
PHP中你应该知道的require()文件包含的正确用法
2015/06/12 PHP
简单了解WordPress开发中update_option()函数的用法
2016/01/11 PHP
javascript indexOf函数使用说明
2008/07/03 Javascript
node.js中的fs.futimesSync方法使用说明
2014/12/17 Javascript
JS解析XML文件和XML字符串详解
2015/04/17 Javascript
果断收藏9个Javascript代码高亮脚本
2016/01/06 Javascript
Javascript中的arguments对象
2016/06/20 Javascript
jQuery获取同级元素的简单代码
2016/07/09 Javascript
jQuery实现鼠标经过显示动画边框特效
2017/03/24 jQuery
详解.vue文件解析的实现
2018/06/11 Javascript
解决Vue.js由于延时显示了{{message}}引用界面的问题
2018/08/25 Javascript
vue里面v-bind和Props 利用props绑定动态数据的方法
2018/08/27 Javascript
浅谈Vue.use的使用
2018/08/29 Javascript
详解如何用webpack4从零开始构建react开发环境
2019/01/27 Javascript
使用vue-cli3 创建vue项目并配置VS Code 自动代码格式化 vue语法高亮问题
2019/05/14 Javascript
浅谈layer的Icon样式以及一些常用的layer窗口使用方法
2019/09/11 Javascript
vuex根据不同的用户权限展示不同的路由列表功能
2019/09/20 Javascript
[04:52]2015国际邀请赛LGD战队晋级之路
2015/08/14 DOTA
python去掉字符串中重复字符的方法
2014/02/27 Python
Python的Django框架安装全攻略
2015/07/15 Python
新手如何快速入门Python(菜鸟必看篇)
2017/06/10 Python
Python基于lxml模块解析html获取页面内所有叶子节点xpath路径功能示例
2018/05/16 Python
Python装饰器用法实例总结
2018/05/26 Python
python命名空间(namespace)简单介绍
2019/08/10 Python
Python通过4种方式实现进程数据通信
2020/03/12 Python
keras输出预测值和真实值方式
2020/06/27 Python
美国在线精品家居网站:Burke Decor
2017/04/12 全球购物
Net Remoting把服务器端激活两种模式
2014/01/22 面试题
亲戚结婚的请假条
2014/02/11 职场文书
舞蹈毕业生的自我评价
2014/03/05 职场文书
和谐社区口号
2014/06/19 职场文书
中学后勤工作总结2015
2015/07/22 职场文书
高二英语教学反思
2016/03/03 职场文书
2007年老电脑安装win11会怎么样? 网友实测win11在老电脑运行良好
2021/11/21 数码科技
前端与RabbitMQ实时消息推送未读消息小红点实现示例
2022/07/23 Java/Android