js 操作cookie

(1)设置cookie:

  document.cookie="id=1;name=qing";
  
  document.addCookie("id=1");

  在cookie名、值中不可出现 ; , = 及空格,一般通过escape函数进行编码,取出时使用unescape还原。

  document.cookie="name="+escape("tmp_name");

(2)获取cookie:

1.拆分cookie

function getCookie(username){
    var cookie_arr=document.cookie.split(";");
    if(!cookie_arr.length){return "";}
    var tmp_arr["",""];
    for(var i=0; i<cookie_arr.length; i++){
      tmp_arr=cookie_arr[i].split("=");
      if(tmp_arr[0]==username){
        break;
      }
     return tmp_arr[1];
}
function GetCookie(name) {  
  var arg = name + "=";  
  var alen = arg.length;  
  var clen = document.cookie.length;  
  var i = 0;  
  while (i < clen) {  
    var j = i + alen;  
    if (document.cookie.substring(i, j) == arg) return getCookieVal (j);  
      i = document.cookie.indexOf(" ", i) + 1;  
      if (i == 0) break;  
    }  
    return null;  
}  
function getCookieVal(offset) {  
  var endstr = document.cookie.indexOf (";", offset);  
  if (endstr == -1) endstr = document.cookie.length;  
    return unescape(document.cookie.substring(offset, endstr));  
}

2.截取字符串

 function getCookie(username){
   var start=document.cookie.indexof(username+"=");
   if(start=-1){return "";}
   start=start+username.length+1;
   var end =document.cookie.indexof(";",start);
   if(end=-1){end=document.cookie.length;}
   return document.cookie.substring(start,end);

 }

3.正则表达式解析

function getCookie(cookieName) {
  var re = new RegExp("\\b"+cookieName+"=([^;]*)\\b");
  var arr =  re.exec(document.cookie);
  return arr?arr[1]:"";
}

(3)给cookie设置终止日期

var date= new Date();
var expiresDay = 1;
date.setTime(date.getTime()+expiresDay*24*60*60*1000);
document.cookie="id=1;expires="+date.toGTMString();

  删除cookie只需将其时间设在过去。

(4)完整示例

setCookie函数

function setCookie(name,value,expires,domain,secure) {
    var str = name+"="+encodeURI(value);//不要忘了在对应getCookie函数里面加上decodeURI方法
    if (expires) {
        str += "; expires="+expires.toGMTString();
    }
    if (path) {
        str += "; path="+path;
    }
    if (domain) {
        str += "; domain="+domain;
    }
    if (secure) {
        str += "; secure";
    }
        document.cookie = str;
}

删除Cookie
没有删除Cookie的直接的方法,但可以变通一下来删除Cookie!

function delCookie(cookieName) {
    var expires = new Date();
    expires.setTime(expires.getTime()-1);//将expires设为一个过去的日期,浏览器会自动删除它
    document.cookie = cookieName+"=; expires="+expires.toGMTString();
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值