簡體   English   中英

替換 Email 模板中的占位符

[英]Replacing placeholders in Email Template

替換 email 模塊中占位符的更好方法是什么?

因此,我制作了一個郵件服務,它采用templatenamereceiverMaillocals等參數。 locals 具有占位符的值。

var locals = {
    username: "John",
    website: "w3schools.com",
    url: "http:// abc. com"
};

mail.sendMail('Registration', 'xyz.com', locals);

郵件服務的相關代碼:-

var mailOptions = {
        from: "Abc <foo@blurdybloop.com>", // sender address
        to: email, // list of receivers
        subject: template_subject, // Subject line
        html: template_html // html body

template_html包含 html 正文,包括從 mongodb 中提取的placeholders

locals是動態的,可以增加或減少。

替換占位符的方法是什么?

模板:-(請注意這些占位符是動態的,可以由管理員更改)

<p>
    Hi {{username}},
</p>
<p>
   Xyz would like you to join it's network on <a href="{{url}}">xyz</a>.
    <br />
    Our website {{ website }}
</p>

我們可以使用正則表達式來搜索和替換用戶指定數據的模板。

我已經提出了一個小型演示

工作演示

在這里,我將用實際數據替換模板。

我使用以下代碼替換模板中的數據:

for (var i = 0; i < data.length; i++) {
        var obj = data[i];
        output +="<p>" + template.replace(/\<%=(.*?)\%>/g, function(match, property) {
            return obj[property];
        }) + "</p>";

 }

在此 function 中,使用RegExp將所有標簽替換為參數中傳遞的 object 中的值

在此示例中,在我的 html 模板中使用{{key}}

 function replaceTemplateValues(template, values){ let html = template; for (let key in values) { html = html.replace(new RegExp('{{' + key + '}}', 'g'), values[key]); } return html; }

暫無
暫無

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

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