js cookie 数组 存读

自己研究了一下.

"Cookie里面只能放String 类型"

所以只能将arr的数据按照自己的约定转成string格式存进cookie。

这里提示一下cookie是存在本地浏览器,session是服务器上的。

将下列的数组存进cookie。

1 var arr = [
2     {'name':'joe'},
3     {'name':'json'},
4     {'name':'boe'},
5 ];

 首先是存的function

function setCookie(searchWord, val){
  
  var value = val;

  var arr = document.cookie.match(new RegExp('(^| )' + searchWord + '=([^;]*)(;|$)'));//获取之前存的内容   expiryday.setTime(expiryday.getTime() + 60 * 60 * 24 * 30 *6 *1000); //cookie周期 这里的意思是有效期为半年   if (arr) {     var cookieContext=unescape(arr[2]);     cookieContext+="&"+escape(value); //escape() 编码     document.cookie = searchWord + '=' + escape(cookieContext) + '; expires=' + expiryday.toGMTString() + ";path=/";
  } else {   
    document.cookie
= searchWord + '=' + escape(value) + '; expires=' + expiryday.toGMTString() + ";path=/";
    //该方法不会对 ASCII 字母和数字进行编码,也不会对下面这些 ASCII 标点符号进行编码: * @ - _ + . / 。其他所有的字符都会被转义序列替换。
    //设置cookie的路径,如果不这样设的话只有自己的路径才能使用,这样设的目的是让该值在这个域下共享
  } }

获取cookie

function getCookie(searchWord) {
    var arr = document.cookie.match(new RegExp("(^| )" + searchWord + "=([^;]*)(;|$)"));
    if (arr != null) {
        var cookieContext=unescape(arr[2]);
        var cookieArr=cookieContext.split('&');
        var tmp = [];
        for(var i in cookieArr){
            if(tmp.indexOf(cookieArr[i])==-1) {
                tmp.push(cookieArr[i]);
           }
        }
    }
    return tmp;
}  
var _setCookie = function(name, value, domain, minute, path) {
if (minute) {
var now = new Date(),
expire = new Date();
expire.setTime(parseFloat(+now) + 60 * 1000 * minute);
}
document.cookie = name + '=' + value + '; ' + (minute ? ('expires=' + expire.toUTCString() + '; ') : '') +
('path=' + (path || '/') + '; domain=' + (domain || 'tenpay.com') + ';');
};

出处:http://www.cnblogs.com/matthew9298-Begin20160224/

如果您觉得本文对您的学习有所帮助,点击页面右下角【好文要顶】支持博主。

原文地址:https://www.cnblogs.com/matthew9298-Begin20160224/p/5420673.html