I need a regular expression that will accept well-formed emails in several formats (see below) that will be input in a comma-separated list. I have the basic email address validation regex,
^[\w\d._%+-]+@(?:[\w\d-]+\.)+(\w{2,})(,|$) 
which can handle test cases A and B, but not the others. I also tried
^(\<)?[\w\d._%+-]+@(?:[\w\d-]+\.)+(\w{2,})(\>)?(,|$)
which was able to handle A, B, and C, but only validated the first email address in each of test cases D and E. I haven't even gotten to testing a regex for format 3.
tl;dr Need a regex that will validate email addresses 1, 2, and 3.
Good website to test your regular expressions: Online Javascript Regex Tester
Data
Test Cases
 A. nora@example.com
 B. nora@example.com, fred@example.com
 C. <nora@example.com>, fred@example.com
 D. <nora@example.com>, <fred@example.com>
 E. fred@example.com, <nora@example.com> 
Email Address Formats
 1. xyz@example.com
 2. <xyz@example.com>
 3. "xyz"<xyz@example.com>
EDIT
I flagged this as a possible duplicate of:
Validate email address in JavaScript?
which, in turn, seems to be a duplicate of:
Using a regular expression to validate an email address
both of which contain much discussion on the validity of regex as email validation. However, the top-voted regexes provided don't seem to do quite what I want so I don't consider this answered yet.
 
     
     
     
    