Javascript - 查找并用数组中的值替换字符串的一部分

标签 javascript arrays string

我有一个字符串,但在字符串中的某些点它具有动态值。 我想找到字符串中的这些点并将它们替换为数组中的值。

假设我有:

var array = ['string', 'value'];
var string = 'This is a {1}, and this is a {2}.';

现在我需要找到一种方法,将 {1} 替换为数组中第一个索引的值,并将 {2} 替换为数组中第二个索引的值。

所以字符串会像这样:

This is a string, and this is a value.

这看起来很简单,但我对此感到很困惑。我找不到轻松做到这一点的方法。

最佳答案

您可以使用 replace 使用正则表达式和函数:

string.replace(/{(\d+)}/g, function(match, n) {
  return array[n-1];
});

您还可以查看n < 1 || n > array.length在数字超出范围时提供后备值。

或者,新的 ES6 方式是使用 tagged template strings

function tag(strings, ...values) {
  var parts = [];
  for(var i=0; i<strings.length; ++i)
    parts.push(strings[i], array[values[i]-1]);
  return parts.join('');
}
tag`This is a ${1}, and this is a ${2}.`

关于Javascript - 查找并用数组中的值替换字符串的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35528583/

相关文章:

python - 如何在python字符串中引用 "\"登录

javascript - 客户端 Breeze JS

javascript - 每个单词的第一个字母大写

java - 我们什么时候应该将 String 更改为 Stringbuilder?

javascript - 循环遍历数组并分配新数组的键

c++ - 阵列包装损坏堆

android - 为什么我们需要在Android Studio中连接字符串之前添加@SuppressLint ("SetTextI18n")注解

javascript - 如何在 Fabric.js 中创建图像加载动画?

javascript - (Ruby、Rails、Javascript)使用 javascript 窗口等管理嵌套模型...?

arrays - 将多个不相邻列复制到数组