我有一个字符串如下:
{hours}/DP1/{facilityId}/CP23/{minutes}
并且有一个对象:
{
hours: 4,
facilityId: "abd-rtyo-99e",
minutes: 43
}
我想得到输出字符串:
4/DP1/abd-rtyo-99e/CP23/43
从而将 {}
内的任何标记替换为对象中的值。因此,{}
内的 hours
被替换为对象中的 4
,minutes
被替换为 43
>等等。我怎样才能做到这一点?
我可以使用 {\w+}
等正则表达式检测 {}
内的字符,但不知道如何继续。
最佳答案
一种选择是匹配单词字符,并使用替换函数来检查对象上是否存在该键 - 如果存在,则返回关联的值:
const input = '{hours}/DP1/{facilityId}/CP23/{minutes}';
const obj = {
hours: 4,
facilityId: "abd-rtyo-99e",
minutes: 43
};
const output = input.replace(
/{(\w+)}/g,
(match, possibleKey) => obj[possibleKey] ? obj[possibleKey] : match
);
console.log(output);
// 4/DP1/abd-rtyo-99e/CP23/43
关于javascript - 用对象中的值替换匹配的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56163455/