title: How can I properly parse an email address with name?
body: <p>I'm reading email headers (in Node.js, for those keeping score) and they are VARY varied. E-mail addresses in the <code>to</code> field look like:</p>
  
  <pre><code>"Jake Smart" &lt;jake@smart.com&gt;, jack@smart.com, "Development, Business" &lt;bizdev@smart.com&gt;
  </code></pre>
  
  <p>and a variety of other formats. Is there any way to parse all of this out?</p>
  
  <p>Here's my first stab:</p>
  
  <ol>
  <li>Run a <code>split()</code> on <code>-</code> to break up the different people into an array</li>
  <li>For each item, see if there's a <code>&lt;</code> or <code>"</code>.</li>
  <li>If there's a <code>&lt;</code>, then parse out the email</li>
  <li>If there's a <code>"</code>, then parse out the name</li>
  <li>For the name, if there's a <code>,</code>, then split to get Last, First names.</li>
  </ol>
  
  <p>If I first do a split on the <code>,</code>, then the <code>Development, Business</code> will cause a split error. Spaces are also inconsistent. Plus, there may be more e-mail address formats that come through in headers that I haven't seen before. Is there any way (or maybe an awesome Node.js library) that will do all of this for me?</p>