删除用户写下的所有文字

我使用Outlook API来获取发送的电子邮件的正文。 现在,我想清理身体删除所有链接,标题等,只保留用户写的文字。 以下是我的正则expression式函数:

 function getRegex() { var regex1 = /^(?=.*Forwarded message)[^]*/m; var regex2 = /^(?=.*From: )[^]*/m; var regex3 = /^(?=.*On )[^]*/m; var regex4 = /^(?=.*http)[^]*/m; return new RegExp("(" + regex1.source + ")|(" + regex2.source + ")|(" + regex3.source + ")|(" + regex4.source + ")"); } 

以下是从Outlook中获取发送的电子邮件的function:

 outlook.mail.getMessages({ token: token.token.access_token, odataParams: queryParams, folderId: 'SentItems' }, function (err, result) { if (err){ console.log(err); return; } var mail_array = result.value; var outlook_sent_emails = ''; mail_array.forEach(function (mail) { if (mail.BodyPreview !== '') { outlook_sent_emails += (mail.BodyPreview + " "); } }); console.log(outlook_sent_emails.replace(getRegex(), "")); //This is not working }); 

这行console.log(outlook_sent_emails.replace(getRegex(), "")); 显示我仍然获得所有链接,标题等

相同的正则expression式在我的代码中的其他地方工作。

编辑:

示例文本:

  From: <Name> Sent: <Datetime> To: <Name> Subj Dear Sir/Madam Hi Vaibhav, Hope you are doing well. http://developer.android.com/sdk/index.html Sent from my Windows 10 phone 

我想从string中删除各种链接和文字,如下所示:

 From: <Name> Sent: <Datetime> To: <Name> Subj Dear Sir/Madam 

预期产出:

  Hi Vaibhav, Hope you are doing well. 

更新:添加http

你可以试试这个:

 ^.*(From:|Sent:|Sent\s+From|To:|Subj|Dear\s+(Sir|Madam)|http).*$ 

并用“”replace

演示

 const regex = /^.*(From:|Sent:|Sent\s+From|To:|Subj|Dear\s+(Sir|Madam)|http).*$/gmi; const str = ` From: <Name> Sent: <Datetime> To: <Name> Subj Dear Sir/Madam Hi Vaibhav, Hope you are doing well. http://developer.android.com/sdk/index.html Sent from my Windows 10 phone`; const subst = ``; const result = str.replace(regex, subst).trim(); console.log(result);