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 相关文章推荐
13 个JavaScript 性能提升技巧分享
Jul 26 Javascript
AngularJS入门教程(二):AngularJS模板
Dec 06 Javascript
js判断一个字符串是否包含一个子串的方法
Jan 26 Javascript
在JavaScript中如何解决用execCommand(
Oct 19 Javascript
使用Function.apply()的参数数组化来提高 JavaScript程序性能的技巧
Dec 23 Javascript
如何解决easyui自定义标签 datagrid edit combobox 手动输入保存不上
Dec 26 Javascript
详解AngularJs HTTP响应拦截器实现登陆、权限校验
Apr 11 Javascript
pace.js和NProgress.js两个加载进度插件的一点小总结
Jan 31 Javascript
原生js实现拖拽功能基本思路详解
Apr 18 Javascript
修改node.js默认的npm安装目录实例
May 15 Javascript
React 无状态组件(Stateless Component) 与高阶组件
Aug 14 Javascript
vue样式穿透 ::v-deep的具体使用
Jun 04 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 和 XML: 使用expat函数(三)
2006/10/09 PHP
php中读写文件与读写数据库的效率比较分享
2013/10/19 PHP
php获取当前时间的毫秒数的方法
2014/01/26 PHP
详解PHP中的mb_detect_encoding函数使用方法
2015/08/18 PHP
Ajax+PHP实现的模拟进度条功能示例
2019/02/11 PHP
javascript 正则替换 replace(regExp, function)用法
2010/05/22 Javascript
通过JS获取用户本地图片路径并显示的代码
2012/02/16 Javascript
js获取客户端外网ip的简单实例
2013/11/21 Javascript
javascript实现信息的显示和隐藏如注册页面
2013/12/03 Javascript
JavaScript原型链示例分享
2014/01/26 Javascript
jQuery中:password选择器用法实例
2015/01/03 Javascript
JS实现网页标题随机显示名人名言的方法
2015/11/03 Javascript
jQuery插件实现多级联动菜单效果
2015/12/01 Javascript
理解javascript异步编程
2016/01/27 Javascript
JavaScript实现二叉树定义、遍历及查找的方法详解
2017/12/20 Javascript
微信小程序实现折叠与展开文章功能
2018/06/12 Javascript
原生JS实现的轮播图功能详解
2018/08/06 Javascript
性能优化篇之Webpack构建速度优化的建议
2019/04/03 Javascript
tweenjs缓动算法的使用实例分析
2019/08/26 Javascript
使用tensorflow实现线性回归
2018/09/08 Python
Python lambda表达式用法实例分析
2018/12/25 Python
使用Python Pandas处理亿级数据的方法
2019/06/24 Python
TensorFlow通过文件名/文件夹名获取标签,并加入队列的实现
2020/02/17 Python
使用Python和百度语音识别生成视频字幕的实现
2020/04/09 Python
Python脚本如何在bilibili中查找弹幕发送者
2020/06/04 Python
Python实例方法、类方法、静态方法区别详解
2020/09/05 Python
基于CSS3实现的几个小loading效果
2018/09/27 HTML / CSS
CSS3的calc()做响应模式布局的实现方法
2017/09/06 HTML / CSS
HTML5 audio标签使用js进行播放控制实例
2015/04/24 HTML / CSS
Geekbuying波兰:购买中国电子产品
2019/10/20 全球购物
员工培训邀请函
2014/01/11 职场文书
写给学生的新学期寄语
2014/01/18 职场文书
企业宣传策划方案
2014/05/29 职场文书
毕业生求职自荐信(2016最新版)
2016/01/28 职场文书
HTML+CSS制作心跳特效的实现
2021/05/26 HTML / CSS