我有像下面的示例模板我想用json對象值替換baby.name如何做到這一點請幫我解決這個問題。用json對象給定的字符串替換變量
var Template = 'Welcome to the world baby {{baby.name}}'
const namelist= [{school:"hakvoz",baby: { name: 'shanker' }}];
幫助字符串替換需要實現這一點。 產量希望如此「歡迎來到世界寶寶鞋靴」
我有像下面的示例模板我想用json對象值替換baby.name如何做到這一點請幫我解決這個問題。用json對象給定的字符串替換變量
var Template = 'Welcome to the world baby {{baby.name}}'
const namelist= [{school:"hakvoz",baby: { name: 'shanker' }}];
幫助字符串替換需要實現這一點。 產量希望如此「歡迎來到世界寶寶鞋靴」
您可以使用RegExp
/\{{2}(.+)\}{2}/
匹配"{{"
捕獲一個或多個字符,例如,"baby.name"
和"}}"
,.split()
與"."
作爲參數來獲取"baby"
,"name"
,利用括號表示或破壞環分配namelist
陣列內獲得在對象屬性
var Template = 'Welcome to the world baby {{baby.name}}';
const namelist= [{school:"hakvoz",baby: { name: 'shanker' }}];
let template = Template.replace(/\{{2}(.+)\}{2}/, function(match, p1) {
let [prop, key] = p1.split(".");
return namelist[0][prop][key];
});
document.querySelector("pre").textContent = template;
<pre></pre>
您可能需要查看template literals。
Template literals are string literals allowing embedded expressions. You can use multi-line strings and string interpolation features with them. They were called "template strings" in prior editions of the ES2015 specification.
string text ${expression} string text
所以你的情況變得
var Template = 'Welcome to the world baby ${namelist[0].baby.name}'
類型錯誤:無法讀取的未定義的屬性「嬰兒」在此行中返回名稱列表[0] [丙] [鍵]。 – user7620655