Fast, accurate human name parser with zero dependencies. Handles titles, suffixes, particles, nicknames, and international names.
Tested against 50,000+ diverse names:
| Library | Accuracy | Speed |
|---|---|---|
| fullnameparser | 99% | 7ms |
| parse-full-name | 61% | 7ms |
| another-name-parser | 54% | 56ms |
| humanparser | 44% | 9ms |
Test data locale distribution:
| Script | Coverage |
|---|---|
| Latin (EN, ES, FR, DE, IT, etc.) | 65% |
| Vietnamese | 12% |
| CJK (Chinese, Japanese, Korean) | 8% |
| Arabic | 5% |
| Cyrillic (Russian, Ukrainian) | 4% |
| Thai | 3% |
| Greek | 2% |
| Hebrew | 1% |
npm install fullnameparserimport { parseName } from 'fullnameparser';
parseName('Dr. Martin Luther King Jr.');
// {
// title: 'Dr.',
// first: 'Martin',
// middle: 'Luther',
// last: 'King',
// suffix: 'Jr.',
// nick: ''
// }
parseName('Dwayne "The Rock" Johnson');
// {
// title: '',
// first: 'Dwayne',
// middle: '',
// last: 'Johnson',
// suffix: '',
// nick: 'The Rock'
// }
parseName('Ludwig van Beethoven');
// {
// title: '',
// first: 'Ludwig',
// middle: '',
// last: 'van Beethoven',
// suffix: '',
// nick: ''
// }
parseName('Kennedy, John F.');
// {
// title: '',
// first: 'John',
// middle: 'F.',
// last: 'Kennedy',
// suffix: '',
// nick: ''
// }- Zero dependencies - lightweight and fast
- Titles - Mr., Mrs., Dr., Prof., Sir, Lady, Rev., Judge, military ranks, international titles (Señor, Herr, Monsieur, etc.)
- Suffixes - Jr., Sr., III, PhD, MD, MBA, Esq., military, and professional certifications
- Particles - van, von, de, del, la, le, bin, ibn, mac, mc, O', and many more
- Nicknames - "Nick", (Nick), 'Nick' formats
- Comma format - "Last, First Middle" ordering
- Hyphenated names - Jean-Pierre, Zeta-Jones, etc.
- International - Spanish, French, German, Italian, Arabic, Celtic name patterns
Parses a full name string and returns an object with the following properties:
interface ParsedName {
title: string; // Dr., Mr., Prof., etc.
first: string; // First name
middle: string; // Middle name(s)
last: string; // Last name (including particles like "van", "de")
suffix: string; // Jr., PhD, etc.
nick: string; // Nickname
}MIT