更改格式字符串中的所有值 "key=value&..."

Change all values in string of format "key=value&..."

我有一个字符串:

var data = 'key1=value1&key2=value2&...';

字符串有大量的键值组合。我需要根据某些规则更改所有值 - encodeURIComponent 它。我只需要相对于值(可能还有键)这样做,但现在是针对整个字符串。

有完整的算法吗?

您可以使用此代码从数据中创建一个对象:

var data="key1=value1&key2=value2&key3=value3";
var obj=Object.fromEntries(
    data.split("&").reduce((acc,cv)=>{
    acc.push(cv.split("="));
    return acc;
  },[])
);
console.log(obj);
.as-console-wrapper { max-height: 100% !important; top: 0; }

然后你可以访问你想要的任何键并获取它的值,比如:

obj["key2"]

您可能需要 unescape 个值。