Использовать обработку строк (как упоминалось @Guffa, произойдет сбой, если сами строки содержат &&
или :
):
var str="param1:'test1' && param2:'test2'";
var map={};
var pairs=str.split('&&');
for(i=0, total=pairs.length; i<total; i++) {
var pair=pairs[i].trim().split(':');
map[pair[0]]=pair[1].substr(1, pair[1].length-2);
}
Примечание: trim()
недоступно в старых браузерах,вам нужно добавить этот бит кода перед тем, как указано выше [src] :
if (!String.prototype.trim) {
String.prototype.trim = function () {
return this.replace(/^\s*(\S*(?:\s+\S+)*)\s*$/, "$1");
};
}