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 相关文章推荐
js+css使DIV始终居于屏幕中间 左下 左上 右上 右下的代码集合
Mar 10 Javascript
javascript Array.prototype.slice的使用示例
Nov 14 Javascript
javascript屏蔽右键代码
May 15 Javascript
JavaScript数组Array对象增加和删除元素方法总结
Jan 20 Javascript
jQuery插件slider实现拖动滑块选取价格范围
Apr 30 Javascript
基于javascript实现九宫格大转盘效果
May 28 Javascript
JavaScript知识点总结(十六)之Javascript闭包(Closure)代码详解
May 31 Javascript
JavaScript核心语法总结(推荐)
Jun 02 Javascript
超实用的javascript时间处理总结
Aug 16 Javascript
JavaScript中的call和apply的用途以及区别
Jan 11 Javascript
利用vueJs实现图片轮播实例代码
Jun 03 Javascript
js+canvas实现简单扫雷小游戏
Jan 22 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
php whois查询API制作方法
2011/06/23 PHP
php curl post 时出现的问题解决
2014/01/30 PHP
Yii2.0高级框架数据库增删改查的一些操作
2015/11/16 PHP
php+Ajax无刷新验证用户名操作实例详解
2019/03/04 PHP
jquery操作复选框(checkbox)的12个小技巧总结
2014/02/04 Javascript
js 获取时间间隔实现代码
2014/05/12 Javascript
学习Node.js模块机制
2016/10/17 Javascript
JQueryEasyUI之DataGrid数据显示
2016/11/23 Javascript
ECMAScript6--解构
2017/03/30 Javascript
javascript 判断一个对象为数组的方法
2017/05/03 Javascript
Vue官方文档梳理之全局配置
2017/11/22 Javascript
微信小程序页面缩放式侧滑效果的实现代码
2018/11/15 Javascript
微信小程序实现简单评论功能
2018/11/28 Javascript
react native 原生模块桥接的简单说明小结
2019/02/26 Javascript
详解Vue2.5+迁移至Typescript指南
2019/08/01 Javascript
详解JWT token心得与使用实例
2019/08/02 Javascript
js实现无缝轮播图特效
2020/05/09 Javascript
基于canvas实现手写签名(vue)
2020/05/21 Javascript
[56:35]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第二局
2016/02/27 DOTA
Python使用Beautiful Soup爬取豆瓣音乐排行榜过程解析
2019/08/15 Python
关于Python核心框架tornado的异步协程的2种方法详解
2019/08/28 Python
python实现逆滤波与维纳滤波示例
2020/02/26 Python
pygame实现飞机大战
2020/03/11 Python
Python要求O(n)复杂度求无序列表中第K的大元素实例
2020/04/02 Python
35款精致的 CSS3 和 HTML5 网页模板 推荐
2012/08/03 HTML / CSS
CSS3实现文本垂直排列的方法
2018/07/10 HTML / CSS
Html5 Canvas动画基础碰撞检测的实现
2018/12/06 HTML / CSS
施华洛世奇韩国官网:SWAROVSKI韩国
2018/06/05 全球购物
linux下进程间通信的方式
2014/12/23 面试题
初婚初育证明
2014/01/14 职场文书
房屋租赁协议书
2014/10/18 职场文书
捐助倡议书
2015/01/19 职场文书
成本会计岗位职责
2015/02/03 职场文书
表扬信范文
2015/05/04 职场文书
大学生党课感想
2015/08/11 职场文书
2016年感恩教师节校园广播稿
2015/12/18 职场文书