whosit
A personal name parser for Node.js: http://en.wikipedia.org/wiki/Personal_name
var whosit = require('whosit');
var name = whosit.parse('Mr. Shawn Michael Miller Sr.');
console.log(name.salutation);
console.log(name.first);
console.log(name.middle);
console.log(name.last);
console.log(name.suffix);
Support for all kinds of names
var name = whosit.parse('Shawn Miller');
console.log(name.first);
console.log(name.last);
name = whosit.parse('Dr. Dre');
console.log(name.salutation);
console.log(name.last);
name = whosit.parse('Prince');
console.log(name.first);
Automatic detection of lexical formats
var name = whosit.parse('Miller,Shawn');
console.log(name.first);
console.log(name.last);
name = whosit.parse('Miller, Shawn Michael');
console.log(name.first);
console.log(name.middle);
console.log(name.last);
Support for many complex surnames
var name = whosit.parse('Michael Ó Conchúir');
console.log(name.first);
console.log(name.last);
name = whosit.parse('Michael O Connor');
console.log(name.first);
console.log(name.middle);
console.log(name.last);
name = whosit.parse('Fintan Mac Néill');
console.log(name.salutation);
console.log(name.last);
name = whosit.parse('Joost van der Meer');
console.log(name.first);
console.log(name.last);
name = whosit.parse('Maria de la Cruz');
console.log(name.first);
console.log(name.last);