2016-12-30 81 views
-1

我試圖取代所有這些字符串:替換{{事}}在多個字符串包含變量

'Apples are {{appleColor}}' 
'Oranges are {{orangeColor}}' 
'My name is {{name}}' 

有了這些:提前

obj = { 
    appleColor: 'red', 
    orangeColor: 'orange', 
    name: 'Todd' 
} 

謝謝!

使用 String.prototype.replace()功能與 更換回調
+0

你可以做到這一點是大多數瀏覽器目前在使用'$ {}' – elclanrs

+2

純JS模板字符串你在努力?那麼你有什麼嘗試?或者你的意思是你想要? – NewToJS

+0

mustache.js做這件事,更多 – dandavis

回答

4

簡單的解決方案:

var str = "'Apples are {{appleColor}}', 'Oranges are {{orangeColor}}', 'My name is {{name}}' ", 
 
    obj = { 
 
     appleColor: 'red', 
 
     orangeColor: 'orange', 
 
     name: 'Todd' 
 
    }; 
 

 
str = str.replace(/{{(\w+)}}/g, function (m, m1) { 
 
    return obj[m1] || m; 
 
}); 
 

 
console.log(str);

+0

有一些值得提及這種方法的警告;錯誤處理顯示數據名稱,「toString」等衝突,嵌套snafu,只有羅嗦的鍵名稱(沒有'_'或'$'支持),沒有對象路徑深度等。 – dandavis

+1

@dandavis,正如我寫的*簡單的解決方案* ...簡單的情況下) – RomanPerekhrest

+0

這是一個很好的答案,我只是賣'mustache.js';) – dandavis

相關問題