<分区>
我有以下代码:
const chaine = 'lorem {{name}} lorem lorem {{name}}..." ;
我需要用这样的数组元素替换所有的{{name}}
cont list = ['java', 'regex']
所以预期的结果是
lorem java lorem lorem regex...
注意:
- {{name}} 字符串中的数字是可变的
- 数组元素长度可变,我们可以有1..N
谢谢
<分区>
我有以下代码:
const chaine = 'lorem {{name}} lorem lorem {{name}}..." ;
我需要用这样的数组元素替换所有的{{name}}
cont list = ['java', 'regex']
所以预期的结果是
lorem java lorem lorem regex...
注意:
谢谢
最佳答案
您可以查找替换值并从 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/