javascript - 用数组元素替换字符串键

标签 javascript arrays node.js regex ecmascript-6

<分区>

我有以下代码:

const chaine  =  'lorem {{name}} lorem lorem {{name}}..." ;

我需要用这样的数组元素替换所有的{{name}}

cont list  = ['java', 'regex']  

所以预期的结果是

lorem java lorem lorem regex...

注意:

  • {{name}} 字符串中的数字是可变的
  • 数组元素长度可变,我们可以有1..N

谢谢

最佳答案

您可以查找替换值并从 list 中获取项目。

var string = 'lorem {{name}} lorem lorem {{name}}...',
    list = ['java', 'regex'],
    result = string.replace(/\{\{name\}\}/g, (i => _ => list[i++])(0));

console.log(result);

一个更高级的版本,为索引的每个属性获取一个对象和一个属性。

var string = 'lorem {{name}} lorem lorem {{name}}, {{foo}}...',
    replacements = { name: ['java', 'regex'], foo: ['bar'] },
    result = string.replace(/\{\{([^}]+)\}\}/g, (_, key) => {
        if (!(key in replacements)) return key;
        replacements['_' + key] = replacements['_' + key] || 0;
        return replacements[key][replacements['_' + key]++];
    });

console.log(result);

关于javascript - 用数组元素替换字符串键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56901136/

相关文章:

javascript - 如何将字符串更改为 Google 图表数据

javascript - 自动回复私信

javascript - DataTables:如何将变量放入表初始化代码中

c - NodeJs 和 C 子进程之间通信的最佳方式

ios - 如何使用 Objective-C 初始化嵌套的 Node.js 模式

javascript - 我能否在 CF11 中获得强大的 XSS 保护,我可以在不触及每个查询或输入的情况下将其应用于整个站点?

javascript - 基于不存在的元素中断循环

java 。如何生成其中包含一定数量的 1's and 0' 的所有整数?

PHP:数组搜索组

javascript - Typescript 类构造函数生成的代码顺序