首页 > 解决方案 > 用数组元素替换字符串键

问题描述

我有以下代码:

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

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

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

所以预期的结果是

lorem java lorem lorem regex...

笔记:

谢谢

标签: javascriptarraysnode.jsregexecmascript-6

解决方案


您可以查找替换值并从中获取项目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);


推荐阅读