【问题标题】:Parse Email Body with Multiple Lines用多行解析电子邮件正文
【发布时间】:2021-08-27 02:12:33
【问题描述】:

如何在 javascript 中解析包含多行的电子邮件正文?

例子

Employee:

123456789

Name:

John Doe

这是我现在正在使用的。

var emailObj = {};

var body_text = inputs.email.replace(/<\/?[^>]+(>|$)/g, ""); 
var regEx = /^(.+):(.+)$/;


for (var i = 0; i < valPairs.length; i++) {
  matches = valPairs[i].match(regEx);
  emailObj[matches[1].toString().trim()] = matches[2].toString().trim(); 
}

outputs.email_var = emailObj;

谢谢。

【问题讨论】:

    标签: javascript parsing name-value


    【解决方案1】:

    您可以先用换行符分割并使用Array.filter过滤掉空行。

    可以使用Array.reduce 并检查索引是否为偶数来构造对象。如果是,则将属性名称和值设置为数组中的相应项。

    const str = `Employee:
    
    123456789
    
    Name:
    
    John Doe`;
    
    const lines = str.split("\n").filter(e => e != "");
    
    const obj = lines.reduce((a, b, i) => {
      if (i % 2 != 0) {
        a[lines[i - 1]] = lines[i]
      }
      return a;
    }, {})
    
    console.log(obj)

    【讨论】:

      猜你喜欢
      • 2018-12-01
      • 2013-09-22
      • 2013-11-03
      • 2019-08-22
      • 2021-08-13
      • 2010-09-21
      • 2015-06-29
      • 2021-06-14
      • 1970-01-01
      相关资源
      最近更新 更多