我有这样一个来自cookie的字符串:
"io=ZCgMK9hyc95vNRBMAAAA; vsid=910vr1505908332008888; csrftoken=FQCHNYIOvrAQztBHPNQlCiy4xorlZVs5; sessionid=uaggm1q1rcxy2o49noaw4b6djg8j18by",我需要把它解析成javascript对象。我尝试使用这个RegExp:
var uri = socket.request.headers.cookie
var queryString = {};
uri.replace(
new RegExp("([^?=&]+)(=([^&]*))?", "g"),
function($0, $1, $2, $3) { queryString[$1] = $3; }
);但它对我不起作用,因为在cookie中,我只有字符串中的params,没有任何域名。当然,我可以在开头添加一些域名,但我不想创建如此丑陋的代码
发布于 2014-06-20 05:24:01
只需迭代并填充对象
var queryString = {};
uri.split(';').forEach(function(item) {
var parts = item.split('=');
queryString[parts[0].trim()] = parts[1].trim();
});将数据作为JSON存储在cookie中似乎更容易。
发布于 2014-06-20 05:41:31
此函数可以很好地工作:
function parseCookies (request) {
var list = {},
rc = request.headers.cookie;
rc && rc.split(';').forEach(function( cookie ) {
var parts = cookie.split('=');
list[parts.shift().trim()] = unescape(parts.join('='));
});
return list;
}发布于 2014-06-20 05:49:10
使用带有';‘的标准querystring.parse作为分隔符。
https://stackoverflow.com/questions/24316306
复制相似问题