用变量替换字符串值

时间:2015-01-23 19:59:08

标签: javascript jquery

我有一个字符串数组,在每个字符串中我想调用一个变量

Strings = ["$username thanks for visiting","Thanks $username, but I don't understand the command $userProvidedCommand"]

现在我知道我可以使用字符串替换

msg.replace('$username', userame)

但是我不想为每种可能性写一个字符串替换。

我认为,理想的是什么。可能会有某种模式替换,它会查找$并打破字符串并将其与变量连接在一起。

有没有办法做到这一点,或者可能有更好的解决方案?

感谢

1 个答案:

答案 0 :(得分:3)

您可以使用正则表达式执行此操作:

var data = {
  username: 'peterpan',
  userProvidedCommand: 'mycommand'
}

var format = function(data, str) {
  return str.replace(/\$(\w+)/g, function(_, m) {
    return data[m] || ''
  })
}

var result = strings.map(format.bind(null, data))