我有一个看起来像这样的字符串:
"give %player% %id% %amount%"
Run Code Online (Sandbox Code Playgroud)
一个对象:
{player: "Abc", id: 3, amount: 4, ...}
Run Code Online (Sandbox Code Playgroud)
如何将字符串中的所有变量("%player%","%id%",...)替换为对象中具有相同名称的变量的值?变量名称可能会在各种情况下发生变化,因此应自动更改.另外,有没有办法定义过滤器,比如忽略具有特定名称的所有变量?
str.replace接受回调函数作为替换.与正则表达式和组一起,您可以搜索所有出现的存根串%...%,获取它之间的值%并在对象中查找相应的属性名称.
例:
var data = {
foo: 42;
};
"The answer is: %foo%".replace(/%([^%]+)%/g, function(match, prop) {
return prop in data ? data[prop] : match;
});
Run Code Online (Sandbox Code Playgroud)