解析多行电子邮件正文

Parse Email Body with Multiple Lines

我将如何在 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;

谢谢。

您可以先通过换行符和使用 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)