簡體   English   中英

用對象屬性替換模板字符串中的鍵

[英]Replace keys in template string with object properties

我有一個這樣的對象。

var obj = {Id:1,Rate:5,Price:200,Name:"History"}

還有這樣的模板。

var templateString = '<option id="{Id}">{Name}</option>'

我想用對象值替換模板值。 我怎樣才能做到這一點。 我不是 javascript 正則表達式的專家。

所需的輸出

var optionString = '<option id="1">History</option>'

小提琴樣本

您可以使用帶有回調的replace

var optionString = templateString.replace(/{(\w+)}/g, function(_,k){
      return obj[k];
});

示范

如果它只出現一次,這對你有用

var optionString = templateString.replace('{Id}',obj.Id).replace('{Name}',obj.Name)

在不使用正則表達式的情況下,這可以通過使用Object.keys查找對象的所有屬性然后用它的值替換每個屬性來完成。

像這樣嘗試:

Object.keys(obj).forEach(key => {
  templateString = templateString.replace(`**${key}**`, `"${obj[key]}"`);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM