用对象的值替换url参数



我有一个像这样的对象:

let data = {
url: "https://test.ir/apps/:type/:id/",
params: {
id: "com.farsitel.bazaar",
type: "xyz",
},
query: {
ref: "direct",
l: "en",
},
};

我想用params对象中的等效键替换url中的:type和:id。javascript的最佳解决方案是什么?

基于的解决方案,将params中的键与url中的正则表达式的值进行匹配,然后更新该键。

On input:https://test.ir/apps/:type/:id/

输出:https://test.ir/apps/xyz/com.farsitel.bazaar/

let data = {
url: "https://test.ir/apps/:type/:id/",
params: {
id: "com.farsitel.bazaar",
type: "xyz",
},
query: {
ref: "direct",
l: "en",
},
};
let new_url = data.url.replace(/:(w+)/g, (match, key) => data.params[key] || match);
data.url = new_url;
console.log(data);

可以直接使用String.replace吗?

const data = {
url: "https://test.ir/apps/:type/:id/",
params: {
id: "com.farsitel.bazaar",
type: "xyz",
},
query: {
ref: "direct",
l: "en",
},
}
const url = data.url.replace(":type", data.params.type).replace(":id", data.params.id);
console.log(url)

相关内容

  • 没有找到相关文章

最新更新