1

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

谢谢你。

4

1 回答 1

0

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

于 2021-08-27T02:25:23.300 回答