首页 > 解决方案 > 如何在 Node JS 中搜索和替换字符串

问题描述

我正在尝试编写一些代码,允许我将文档作为字符串传递,该字符串可以是纯 txt 或 html,并且嵌入了一些我想用个人值替换的字段。像这样的东西

Hi {{ first_name | fallback: "there" }},

我将字段名称作为具有相同名称的对象传递,因此查找很容易。所以我正在寻找编码思路如何搜索 {{ }} 部分,然后检查字段是否未知、null 或“”,以及它是否在标签中应用后备值。这有点像 mailmerge,但我不希望它是一个 docx 文件并输出为 word 或 pdf。我只想要处理过的字符串,这样我就可以传回我的邮件代码并发送消息

标签: javascriptnode.jsmailmerge

解决方案


将执行以下操作以实现您的输出的程序,

  1. 获取包含在之间的字符串{{}}
  2. 拆分刺痛|
  3. 使用删除不需要的空间trim()
  4. 检查并找到fallback
  5. Replace具有所需价值的刺痛

这是一步一步执行上述操作的示例程序。

var str = 'Hi {{ first_name | fallback: "there" }},'
var data = {
    first_name: "siva",
    last_name: "sankar",
    code: 29
}

function templateRender(str, data) {
    return str.replace(/{{([^}]+)}}/g, function (match, string) {
        var fallback = ''
        var stringArr = string.split("|");
        var value = stringArr[0].trim();

        if (stringArr[1]) { fallback = stringArr[1].match(/(?<=fallback\:\s?)(["'].*?["'])/)[0].replace(/["']/g, "").trim(); }
        return data[value] ? data[value] : fallback;
    });
}

console.log("New String :::: ", templateRender(str, data));

推荐阅读