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 相关文章推荐
event.keyCode键码值表 附只能输入特定的字符串代码
May 15 Javascript
javascript中数组方法汇总
Jul 07 Javascript
Node.js巧妙实现Web应用代码热更新
Oct 22 Javascript
详谈JavaScript的闭包及应用
Jan 17 Javascript
图解Javascript——作用域、作用域链、闭包
Mar 21 Javascript
微信小程序tabbar不显示解决办法
Jun 08 Javascript
Vuejs 2.0 子组件访问/调用父组件的方法(示例代码)
Feb 08 Javascript
Vue.js最佳实践(五招助你成为vuejs大师)
May 04 Javascript
详解基于mpvue的小程序markdown适配解决方案
May 08 Javascript
JS实现键值对遍历json数组功能示例
May 30 Javascript
Node.js中package.json中库的版本号(~和^)
Apr 02 Javascript
仿照Element-ui实现一个简易的$message方法
Sep 14 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
全国FM电台频率大全 - 29 青海省
2020/03/11 无线电
php下获取Discuz论坛登录用户名、用户组、用户ID等信息的实现代码
2010/12/29 PHP
php中取得文件的后缀名?
2012/02/20 PHP
CI框架开发新浪微博登录接口源码完整版
2014/05/28 PHP
PHP编写daemon process详解及实例代码
2016/09/30 PHP
php+redis实现多台服务器内网存储session并读取示例
2017/01/12 PHP
制作高质量的JQuery Plugin 插件的方法
2010/04/20 Javascript
apycom出品的jQuery精美菜单破解方法
2011/02/18 Javascript
分享几个超级震憾的图片特效
2012/01/08 Javascript
JavaScript编程中布尔对象的基本使用
2015/10/25 Javascript
jQuery Ajax 上传文件处理方式介绍(推荐)
2016/06/30 Javascript
jQuery动态修改字体大小的方法【测试可用】
2016/09/09 Javascript
html5+canvas实现支持触屏的签名插件教程
2017/05/08 Javascript
Vue 实现拨打电话操作
2020/11/16 Javascript
如何在vue-cli中使用css-loader实现css module
2021/01/07 Vue.js
[00:44]TI7不朽珍藏III——军团指挥官不朽展示
2017/07/15 DOTA
[01:20]2018DOTA2亚洲邀请赛总决赛战队LGD晋级之路
2018/04/07 DOTA
忘记ftp密码使用python ftplib库暴力破解密码的方法示例
2014/01/22 Python
python网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)
2014/06/09 Python
简单介绍Python中的floor()方法
2015/05/15 Python
详解Python中的Cookie模块使用
2015/07/06 Python
Python的Django框架中自定义模版标签的示例
2015/07/20 Python
Python基于tkinter模块实现的改名小工具示例
2017/07/27 Python
详解Django解决ajax跨域访问问题
2018/08/24 Python
python实现文件的备份流程详解
2019/06/18 Python
scrapy爬虫:scrapy.FormRequest中formdata参数详解
2020/04/30 Python
美国购买和销售礼品卡平台:Raise
2017/01/13 全球购物
缓刑人员的思想汇报
2014/01/11 职场文书
图书室管理制度
2014/01/19 职场文书
公务员综合考察材料
2014/02/01 职场文书
企业承诺书格式
2014/05/21 职场文书
预备党员思想汇报1000字
2014/10/07 职场文书
党的群众路线教育实践活动调研报告
2014/11/03 职场文书
田径运动会广播稿
2015/08/19 职场文书
教师听课学习心得体会
2016/01/15 职场文书
工作报告范文
2019/06/20 职场文书