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); // Mr.
console.log(name.first); // Shawn
console.log(name.middle); // Michael
console.log(name.last); // Miller
console.log(name.suffix); // Sr.
var name = whosit.parse('Shawn Miller');
console.log(name.first); // Shawn
console.log(name.last); // Miller
name = whosit.parse('Dr. Dre');
console.log(name.salutation); // Dr.
console.log(name.last); // Dre
name = whosit.parse('Prince');
console.log(name.first); // Prince
var name = whosit.parse('Miller,Shawn');
console.log(name.first); // Shawn
console.log(name.last); // Miller
name = whosit.parse('Miller, Shawn Michael');
console.log(name.first); // Shawn
console.log(name.middle); // Michael
console.log(name.last); // Miller
var name = whosit.parse('Michael Ó Conchúir');
console.log(name.first); // Michael
console.log(name.last); // Ó Conchúir
name = whosit.parse('Michael O Connor');
console.log(name.first); // Michael
console.log(name.middle); // O
console.log(name.last); // Connor
name = whosit.parse('Fintan Mac Néill');
console.log(name.salutation); // Fintan
console.log(name.last); // Mac Néill
name = whosit.parse('Joost van der Meer');
console.log(name.first); // Joost
console.log(name.last); // van der Meer
name = whosit.parse('Maria de la Cruz');
console.log(name.first); // Maria
console.log(name.last); // de la Cruz