JavaScript操作Cookie方法实例分析


Posted in Javascript onMay 27, 2015

本文实例讲述了JavaScript操作Cookie方法。分享给大家供大家参考。具体如下:

// My methods for setting, reading and deleting cookies.
// I have methods to check for the existence of cookie names or values, 
// to retrieve by name or value, and to create a formatted string of 
// all the cookies.
// My site: andrew.dx.am
var SetCookie = function (name, value, expires, path, domain, secure) {
  // The caller should Trim the name/value pair, if required.
  // Sets the name/value pair (encoded); 'expires' is the no. of days.
  var expires_date;
  if (expires) {
    expires_date = new Date();
    expires_date.setDate(expires_date.getDate() + expires);
  }
  document.cookie = encodeURIComponent(name) + "=" + 
    encodeURIComponent(value) +
    ( ( expires ) ? ";expires=" + expires_date.toUTCString() : "" ) +
    ( ( path ) ? ";path=" + path : "" ) +
    ( ( domain ) ? ";domain=" + domain : "" ) +
    ( ( secure ) ? ";secure" : "" );
};
var DeleteCookie = function (name, path, domain) {
  // The caller should Trim the name/value pair.
  // Encodes the name before deleting.
  document.cookie = encodeURIComponent(name) + "=" + 
    ( ( path ) ? ";path=" + path : "") + ( ( domain ) ? ";domain=" + 
      domain : "" ) + ";expires=Fri, 01-Jan-2010 00:00:01 UTC";
};
var DelAllCookies = function () {
  var currDate = new Date(), i, theCookie = document.cookie.split(";");
  currDate = currDate.toUTCString();
  i = theCookie.length;
  while ( i-- ) {
    document.cookie = theCookie[i] + "; expires =" + currDate;
  }
};
var EscapeReg = function (str) {
  // Helper fn: Escapes characters for use in a regular expression.
  return str.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
};
// The following four functions do not Trim the name or value 
// - the calling fns should do this.
var CNameExists = function (cookie_name) { // case-insensitive
  var testName, myReg;
  if (document.cookie.length == 0) return false;
  testName = EscapeReg(cookie_name);
  myReg = new RegExp('(^|;) ?' + testName + '=([^;]*)(;|$)','i');
  return myReg.test(decodeURIComponent(document.cookie));
};
var CValueExists = function (cookie_value)  { // case insensitive
  var testName, myReg;
  if (document.cookie.length == 0) return false; 
  testName = EscapeReg(cookie_value);
  myReg = new RegExp('(=)' + testName + '(;|$)','i');
  return myReg.test(decodeURIComponent(document.cookie));
};
var CNameGet = function (cookie_value) { // case-insensitive
  var testName, myReg, results;
  if (document.cookie.length == 0) return '';
  testName = EscapeReg(cookie_value);
  myReg = new RegExp('(^|;) ?([^=]*)=' + testName + '(;|$)','i');
  results = decodeURIComponent(document.cookie).match(myReg);
  return ( results ) ? results[2] : '';
};
var CValueGet = function (cookie_name) { // case-insensitive
  var testName, myReg, results;
  if (document.cookie.length == 0) return '';
  testName = EscapeReg(cookie_name);
  myReg = new RegExp('(^|;) ?' + testName + '=([^;]*)(;|$)','i');
  results = decodeURIComponent(document.cookie).match(myReg);
  return ( results ) ? results[2] : '';
};
var CookieStr = function () {
  // Returns a string (with line breaks) which could be 
  // placed in, for example, a textarea.
  return decodeURIComponent(document.cookie).
    replace(/([^=;]+)=([^;]*)[;\s]*/g,'$1 ($2)\n') || '';
};

希望本文所述对大家的javascript程序设计有所帮助。

Javascript 相关文章推荐
jQuery的一些注意
Dec 06 Javascript
jQuery EasyUI 的EasyLoader功能介绍
Sep 12 Javascript
jQuery实现随意改变div任意属性的名称和值(部分原生js实现)
May 28 Javascript
Node.js检测端口(port)是否被占用的简单示例
Sep 29 Javascript
JS判断是否为JSON对象及是否存在某字段的方法(推荐)
Nov 29 Javascript
基于JS代码实现简单易用的倒计时 x 天 x 时 x 分 x 秒效果
Jul 13 Javascript
详解从零搭建 vue2 vue-router2 webpack3 工程
Nov 22 Javascript
elementui的默认样式修改方法
Feb 23 Javascript
解决vue的 v-for 循环中图片加载路径问题
Sep 03 Javascript
VUE脚手架的下载和配置步骤详解
Apr 01 Javascript
使用原生JS实现滚轮翻页效果的示例代码
May 31 Javascript
一篇文章看懂JavaScript中的回调
Jan 05 Javascript
JavaScript通过事件代理高亮显示表格行的方法
May 27 #Javascript
jquery预加载图片的方法
May 27 #Javascript
jQuery仿gmail实现fixed布局的方法
May 27 #Javascript
js实现键盘Enter键提交表单的方法
May 27 #Javascript
js实现简单锁屏功能实例
May 27 #Javascript
JS实现简单路由器功能的方法
May 27 #Javascript
JavaScript实现将UPC转换成ISBN的方法
May 26 #Javascript
You might like
玛琪朵 Macchiato
2021/03/03 咖啡文化
php用户注册时常用的检验函数实例总结
2014/12/22 PHP
php+jQuery实现的三级导航栏下拉菜单显示效果
2017/08/10 PHP
jQuery 位置插件
2008/12/25 Javascript
js里的prototype使用示例
2010/11/19 Javascript
javascript中的变量作用域以及变量提升详细介绍
2013/10/24 Javascript
JQUERY实现网页右下角固定位置展开关闭特效的方法
2015/07/27 Javascript
jQuery实现的鼠标响应缓冲动画效果示例
2018/02/13 jQuery
NodeJS 将文件夹按照存放路径变成一个对应的JSON的方法
2018/10/17 NodeJs
js 获取本周、上周、本月、上月、本季度、上季度的开始结束日期
2020/02/01 Javascript
[02:02:38]VG vs Mineski Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
Python+Opencv识别两张相似图片
2020/03/23 Python
Python生成8位随机字符串的方法分析
2017/12/05 Python
python文件操作之批量修改文件后缀名的方法
2018/08/10 Python
Python爬取成语接龙类网站
2018/10/19 Python
详解python中的hashlib模块的使用
2019/04/22 Python
Python实现的爬取百度贴吧图片功能完整示例
2019/05/10 Python
机器学习实战之knn算法pandas
2019/06/22 Python
python3获取url文件大小示例代码
2019/09/18 Python
解决pytorch报错:AssertionError: Invalid device id的问题
2020/01/10 Python
Python实现投影法分割图像示例(一)
2020/01/17 Python
Python中断多重循环的几种方式详解
2020/02/10 Python
日本动漫周边服饰销售网站:Atsuko
2019/12/16 全球购物
在C语言中实现抽象数据类型什么方法最好
2014/06/26 面试题
计算机应用职专应届生求职信
2013/11/12 职场文书
高级技校毕业生自荐信
2013/11/18 职场文书
人力资源部培训专员岗位职责
2014/01/02 职场文书
中学生国旗下讲话稿
2014/04/26 职场文书
法语专业求职信
2014/07/20 职场文书
未受刑事制裁公证证明
2014/09/20 职场文书
2015年幼儿园新年寄语
2014/12/08 职场文书
化验室安全管理制度
2015/08/06 职场文书
美德少年主要事迹材料
2015/11/04 职场文书
基于Redis过期事件实现订单超时取消
2021/05/08 Redis
Python可变与不可变数据和深拷贝与浅拷贝
2022/04/06 Python
Redis中key的过期删除策略和内存淘汰机制
2022/04/12 Redis