在javascript中访问cookie

Jin*_*iel 2 javascript cookies

可能重复:
在javascript中读取cookie

我写了以下功能.我需要使用格式访问cookie $COOKIE['cookieName'].

var $COOKIE = (function(){
    if(!document.cookie)
        return {};
    else{
        var c = document.cookie.split(';');
        var len = c.length;

        var ret = {};
        var temp ;

        for( var i = 0 ; i < len ; ++i )
        {
            temp = c[i].split('=');

            ret[temp[0]] = temp[1];
        }

        return ret;
    }
})();
Run Code Online (Sandbox Code Playgroud)

我设置了两个cookie a1 = 2,a2 = 9. $COOKIE['a1']给我2,但是$COOKIE['a2']未定义.

为什么会这样?我的逻辑/代码有什么问题?

Tha*_*bas 5

问题是你被"分裂"; 但cookie中的值用";"(分号+空格)分隔.因此你的第二个价值就是" a2": 9

要修复它,只需在分隔符中添加一个空格,或者使用此代码段来实现更加以数据为中心的方法;)

var $COOKIE = (document.cookie || '').split(/;\s*/).reduce(function(re, c) {
  var tmp = c.match(/([^=]+)=(.*)/);
  if (tmp) re[tmp[1]] = unescape(tmp[2]);
  return re;
}, {});
Run Code Online (Sandbox Code Playgroud)