fullnameparser
v1.1.1
Published
Fast, accurate human name parser. Handles titles, suffixes, particles, nicknames, and international names.
Downloads
681
Maintainers
Readme
fullnameparser
Fast, accurate human name parser with zero dependencies. Handles titles, suffixes, particles, nicknames, and international names.
Benchmark
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% |
Installation
npm install fullnameparserUsage
import { 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: ''
// }Features
- 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
API
parseName(fullName: string): ParsedName
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
}License
MIT
