我有一个字符串数组,在每个字符串中我想调用一个变量
Strings = ["$username thanks for visiting","Thanks $username, but I don't understand the command $userProvidedCommand"]
现在我知道我可以使用字符串替换
msg.replace('$username', userame)
但是我不想为每种可能性写一个字符串替换。
我认为,理想的是什么。可能会有某种模式替换,它会查找$并打破字符串并将其与变量连接在一起。有没有办法做到这一点,或者可能有更好的解决方案?
感谢
答案 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))