我有一个看起来像这样的字符串:
"give %player% %id% %amount%"
还有一个对象:
{player: "Abc", id: 3, amount: 4, ...}
如何用对象中同名变量的值替换字符串中的所有变量(“%player%”、“%id%”、...)?变量名称可能会在各种情况下发生变化,因此应该自动更改。此外,有没有一种方法可以定义过滤器,例如忽略具有特定名称的所有变量?
最佳答案
str.replace
接受回调函数作为替代。连同regular expression和组,您可以搜索所有出现的 stub 字符串 %...%
,获取 %
之间的值并在对象中查找相应的属性名称。
例子:
var data = {
foo: 42;
};
"The answer is: %foo%".replace(/%([^%]+)%/g, function(match, prop) {
return prop in data ? data[prop] : match;
});
关于javascript - 用变量替换关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20808677/