用对象的值替换 url 参数
replace url params with values of an object
我有这样一个对象:
let data = {
url: "https://test.ir/apps/:type/:id/",
params: {
id: "com.farsitel.bazaar",
type: "xyz",
},
query: {
ref: "direct",
l: "en",
},
};
我想将 url 中的 :type 和 :id 替换为来自 params 对象的等效键。 javascript 中的最佳解决方案是什么?
你能用 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)
解决方案基于匹配键params
到正则表达式键url
的值,然后更新该密钥。
输入时: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);
我有这样一个对象:
let data = {
url: "https://test.ir/apps/:type/:id/",
params: {
id: "com.farsitel.bazaar",
type: "xyz",
},
query: {
ref: "direct",
l: "en",
},
};
我想将 url 中的 :type 和 :id 替换为来自 params 对象的等效键。 javascript 中的最佳解决方案是什么?
你能用 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)
解决方案基于匹配键params
到正则表达式键url
的值,然后更新该密钥。
输入时: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);