Ben*_*ack 2 javascript regex email mime
使用 javascript,我需要解析text/html电子邮件的 Content-Type部分并仅提取 HTML 部分。这是有问题的邮件源部分的示例:
------=_Part_1504541_510475628.1327512846983
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit
<html ... a bunch of html ...
/html>
Run Code Online (Sandbox Code Playgroud)
我想提取之间(含)的一切<html>标签后text/html。我该怎么做呢?
注意:我可以使用 hacky regex。我不希望这能防弹。
根据 RFC/MIME 文档,封装边界被定义为完全由两个连字符(“-”,十进制代码 45)组成的行,后跟 Content-Type 标头字段中的边界参数值。
注意:在 JavaScript 中确实没有/s修饰符可以使点.匹配所有字符,包括换行符。要绝对匹配任何字符,您可以使用包含速记类及其否定版本的字符类,例如[\s\S].
正则表达式:
\n--[^\n\r]*\r?\nContent-Type: text\/html[\s\S]*?\r?\n\r?\n([\s\S]*?)\n\r?\n--
Run Code Online (Sandbox Code Playgroud)
JavaScript:
matches = /\n--[^\n\r]*\r?\nContent-Type: text\/html[\s\S]*?\r?\n\r?\n([\s\S]*?)\n\r?\n--/gim.exec(mail);
Run Code Online (Sandbox Code Playgroud)