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实现表单input中提示文字value随鼠标焦点移进移出而显示或隐藏的代码
Mar 21 Javascript
突发奇想的一个jquery插件
Nov 19 Javascript
遍历DOM对象内的元素属性示例代码
Feb 08 Javascript
jQuery.each使用详解
Jul 07 Javascript
浅谈javascript中return语句
Jul 15 Javascript
JS组件Bootstrap Table表格多行拖拽效果实现代码
Dec 08 Javascript
移动端点击态处理的三种实现方式
Jan 12 Javascript
jquery DataTable实现前后台动态分页
Jun 17 jQuery
详解用webpack2搭建angular2的项目
Jun 22 Javascript
vue实现自定义多选与单选的答题功能
Jul 05 Javascript
如何解决.vue文件url引用文件的问题
Jan 18 Javascript
vue transition 在子组件中失效的解决
Nov 12 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入门源程序
2006/10/09 PHP
PHP实现MVC开发得最简单的方法――模型
2007/04/10 PHP
详解PHP实现定时任务的五种方法
2016/07/25 PHP
PHP XML和数组互相转换详解
2016/10/26 PHP
PHP添加文字水印或图片水印的水印类完整源代码与使用示例
2019/03/18 PHP
Javascript实例教程(19) 使用HoTMetal(4)
2006/12/23 Javascript
javascript parseInt 大改造
2009/09/27 Javascript
一个简单的js鼠标划过切换效果
2010/06/30 Javascript
js根据日期判断星座的示例代码
2014/01/23 Javascript
jquery操作checkbox示例分享
2014/07/21 Javascript
jQuery实现的感应鼠标悬停图片色彩渐显效果
2015/03/03 Javascript
Jquery 全选反选实例代码
2015/11/19 Javascript
JavaScript通过HTML的class来获取HTML元素的方法总结
2016/05/24 Javascript
前端弹出对话框 js实现ajax交互
2016/09/09 Javascript
分析JS中this引发的bug
2017/12/12 Javascript
vue3.0 CLI - 2.2 - 组件 home.vue 的初步改造
2018/09/14 Javascript
解决axios会发送两次请求,有个OPTIONS请求的问题
2018/10/25 Javascript
详解VUE中的插值( Interpolation)语法
2020/10/18 Javascript
[01:02]2014 DOTA2国际邀请赛中国区预选赛 现场抢先看
2014/05/22 DOTA
梯度下降法介绍及利用Python实现的方法示例
2017/07/12 Python
Python实现模拟分割大文件及多线程处理的方法
2017/10/10 Python
Python3.5基础之函数的定义与使用实例详解【参数、作用域、递归、重载等】
2019/04/26 Python
python中enumerate() 与zip()函数的使用比较实例分析
2019/09/03 Python
Flask框架 CSRF 保护实现方法详解
2019/10/30 Python
通过实例解析Python调用json模块
2019/12/11 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
2021/02/02 Python
HTML5制作表格样式
2016/11/15 HTML / CSS
SHEIN美国:购买时髦的女性服装
2020/12/02 全球购物
什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处?
2012/03/14 面试题
小学教师自我鉴定
2013/11/07 职场文书
学生党员思想汇报范文
2014/01/09 职场文书
好军嫂事迹材料
2014/01/15 职场文书
高中学生评语大全
2014/04/25 职场文书
奥巴马经典演讲稿
2014/09/13 职场文书
六年级作文之家庭作文
2019/12/12 职场文书
Python数据可视化之基于pyecharts实现的地理图表的绘制
2021/06/10 Python