如何在javascript中将字符串转换为地图?

min*_*eow 11 javascript query-string

比如,我们有一个如下所示的查询字符串:

"param1:'test1' && param2:'test2'"
Run Code Online (Sandbox Code Playgroud)

我想把它变成一个对象图,像这样:

{param:test1, param2:test2}
Run Code Online (Sandbox Code Playgroud)

怎么可能这样呢?这似乎是一个非常常见的用例.

And*_*y E 11

我通常使用"搜索并不替换"方法:

var ret = {},
    str = "param1:'test1' && param2:'test2'";

str.replace(/(\b[^:]+):'([^']+)'/g, function ($0, param, value) {
    ret[param] = value;
});

JSON.stringify(ret);
// -> { "param1": "test1", "param2":"test2" }
Run Code Online (Sandbox Code Playgroud)

示例:http://jsfiddle.net/bcJ9s/