Skip to content

AlfGoto/nameparser

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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 fullnameparser

Usage

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

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages