首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将querystring解析为object

问将querystring解析为object
EN

Stack Overflow用户
提问于 2014-06-20 05:12:35
回答 3查看 335关注 0票数 0

我有这样一个来自cookie的字符串:

代码语言:javascript
复制
"io=ZCgMK9hyc95vNRBMAAAA; vsid=910vr1505908332008888; csrftoken=FQCHNYIOvrAQztBHPNQlCiy4xorlZVs5; sessionid=uaggm1q1rcxy2o49noaw4b6djg8j18by"

,我需要把它解析成javascript对象。我尝试使用这个RegExp:

代码语言:javascript
复制
var uri = socket.request.headers.cookie
        var queryString = {};
        uri.replace(
            new RegExp("([^?=&]+)(=([^&]*))?", "g"),
            function($0, $1, $2, $3) { queryString[$1] = $3; }
        );

但它对我不起作用,因为在cookie中,我只有字符串中的params,没有任何域名。当然,我可以在开头添加一些域名,但我不想创建如此丑陋的代码

EN

回答 3

Stack Overflow用户

发布于 2014-06-20 05:24:01

只需迭代并填充对象

代码语言:javascript
复制
var queryString = {};

uri.split(';').forEach(function(item) {
    var parts = item.split('=');
    queryString[parts[0].trim()] = parts[1].trim();
});

将数据作为JSON存储在cookie中似乎更容易。

票数 1
EN

Stack Overflow用户

发布于 2014-06-20 05:41:31

此函数可以很好地工作:

代码语言:javascript
复制
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;
}
票数 0
EN

Stack Overflow用户

发布于 2014-06-20 05:49:10

使用带有';‘的标准querystring.parse作为分隔符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24316306

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档