JSFiddle - React, Tailwind, and code Playground

by mischa

JavaScript

var body ='(BODYSTRUCTURE (("TEXT" "PLAIN" ("CHARSET" "US-ASCII" "DELSP" "yes" "FORMAT" "flowed") NIL NIL "7BIT" 1899 113 NIL NIL NIL)(("TEXT" "HTML" ("CHARSET" "US-ASCII") NIL NIL "7BIT" 413 0 NIL NIL NIL)("APPLICATION" "PDF" ("NAME" "invoice 2043 01.07.2011.pdf" "X-MAC-TYPE" "50444620" "X-UNIX-MODE" "0644") NIL NIL "BASE64" 165268 NIL ("INLINE" ("FILENAME" "invoice 2043 01.07.2011.pdf")) NIL)("TEXT" "HTML" ("CHARSET" "US-ASCII") NIL NIL "QUOTED-PRINTABLE" 3534 55 NIL NIL NIL)("IMAGE" "JPEG" ("NAME" "image.jpg" "X-UNIX-MODE" "0644") NIL NIL "BASE64" 2850 NIL ("INLINE" ("FILENAME" "image.jpg")) NIL)("TEXT" "HTML" ("CHARSET" "US-ASCII") NIL NIL "QUOTED-PRINTABLE" 1968 30 NIL NIL NIL) "MIXED" ("BOUNDARY" "Apple-Mail-2593-494162895") NIL NIL) "ALTERNATIVE" ("BOUNDARY" "Apple-Mail-2592-494162895") NIL NIL))';

var rx = /(\(+(?:"MESSAGE"|"MULTIPART"|"TEXT"|"IMAGE"|"APPLICATION"|"AUDIO"|"VIDEO"))/ig;

var rxx = /\(+("MESSAGE"|"MULTIPART"|"TEXT"|"IMAGE"|"APPLICATION"|"AUDIO"|"VIDEO")/i;

var parts = body.split(rx);

for (var i = 0; i < parts.length; i++) {
    if (parts[i].match(rxx)) {
        document.write("<p>" + parts[i] + parts[i+1] + "</p>");
    }
    
}

// Next: need to catch boundrary