javascript - 用变量替换关键字

标签 javascript regex

我有一个看起来像这样的字符串:

"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/

相关文章:

javascript - Webkit 将 "#"转换为 %23 导致 404 错误?

javascript - 使用 Javascript 插入 CSS 规则

Javascript替换字符串字符

javascript - 使用正则表达式计算字符串中句号和逗号的数量

javascript - 查找前面没有任何内容、后面也没有任何内容的字符串

javascript - 为什么更改子组件中的状态(基于 Prop )会影响 Prop ?

javascript - 在移动浏览器上为 div 设置动画

javascript - 下载数据时,JqueryUI 如何读取 jquery 请求上的数据?

regex - 正则表达式可能无法使用正则表达式在Google Analytics(分析)中运行?

regex - 将两行合并为一行 - Notepad++