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阻止事件冒泡
Mar 20 Javascript
jquery datatable后台封装数据示例代码
Aug 07 Javascript
jQuery通过点击行来删除HTML表格行的实现示例
Sep 10 Javascript
分享一个常用的javascript静态类
Dec 31 Javascript
JavaScript跨平台的开源框架NativeScript
Mar 24 Javascript
js实现三张图(文)片一起切换的banner焦点图
Aug 25 Javascript
前端js文件合并的三种方式推荐
May 19 Javascript
jQuery checkbox选中问题之prop与attr注意点分析
Nov 15 Javascript
JS动态的把左边列表添加到右边的实现代码(可上下移动)
Nov 17 Javascript
说说Vue.js中的functional函数化组件的使用
Feb 12 Javascript
VUE中setTimeout和setInterval自动销毁案例
Sep 07 Javascript
vue自定义组件实现双向绑定
Jan 13 Vue.js
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
Excel数据导入Mysql数据库的实现代码
2008/06/05 PHP
php strnatcmp()函数的用法总结
2013/11/27 PHP
CodeIgniter采用config控制的多语言实现根据浏览器语言自动转换功能
2014/07/18 PHP
php静态文件生成类实例分析
2015/01/03 PHP
Yii2 rbac权限控制操作步骤实例教程
2016/04/29 PHP
高性能Javascript笔记 数据的存储与访问性能优化
2012/08/02 Javascript
jQuery+JSON+jPlayer实现QQ空间音乐查询功能示例
2013/06/17 Javascript
jquery模拟LCD 时钟的html文件源代码
2014/06/16 Javascript
js实现简单计算器
2015/11/22 Javascript
分享javascript实现的冒泡排序代码并优化
2016/06/05 Javascript
KnockoutJS 3.X API 第四章之表单textInput、hasFocus、checked绑定
2016/10/11 Javascript
JS监控关闭浏览器操作的实例详解
2017/09/12 Javascript
解决Webpack 热部署检测不到文件变化的问题
2018/02/22 Javascript
详解mpvue中小程序自定义导航组件开发指南
2019/02/11 Javascript
JavaScript数据结构与算法之检索算法实例分析【顺序查找、最大最小值、自组织查询】
2019/02/22 Javascript
jQuery实现的点击显示隐藏下拉菜单功能完整示例
2019/05/17 jQuery
简述vue-cli中chainWebpack的使用方法
2019/07/30 Javascript
layui 数据表格+分页+搜索+checkbox+缓存选中项数据的方法
2019/09/21 Javascript
vue 全局环境切换问题
2019/10/27 Javascript
Python random模块常用方法
2014/11/03 Python
Python实现单词拼写检查
2015/04/25 Python
Python打印“菱形”星号代码方法
2018/02/05 Python
centos6.8安装python3.7无法import _ssl的解决方法
2018/09/17 Python
对python opencv 添加文字 cv2.putText 的各参数介绍
2018/12/05 Python
详解python中的time和datetime的常用方法
2019/07/08 Python
Python操作Sonqube API获取检测结果并打印过程解析
2019/11/27 Python
python使用ctypes调用扩展模块的实例方法
2020/01/28 Python
解决Python数据可视化中文部分显示方块问题
2020/05/16 Python
浅谈django 重载str 方法
2020/05/19 Python
Python优秀开源项目Rich源码解析的流程分析
2020/07/06 Python
Selenium webdriver添加cookie实现过程详解
2020/08/12 Python
pycharm中如何自定义设置通过“ctrl+滚轮”进行放大和缩小实现方法
2020/09/16 Python
讲党性心得体会
2014/09/03 职场文书
2015年打非治违工作总结
2015/04/02 职场文书
Pytorch中TensorBoard及torchsummary的使用详解
2021/05/12 Python
引用计数法和root搜索算法以及JVM中判定对象需要回收的方法
2022/04/19 Java/Android