removeDiacritics
Removes diacritical marks (accents) from letters.
1/**
2 * Removes diacritical marks (accents) from letters.
3 *
4 * @param str - The input string to normalize.
5 * @returns A string without diacritics.
6 *
7 * @example
8 * removeDiacritics('Crème brûlée') → 'Creme brulee'
9 */
10export function removeDiacritics(str: string): string {
11 return str.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
12}
Improves Search and Matching
Removes accents and diacritical marks, enabling case-insensitive and accent-insensitive searches (e.g. matching
resume
andrésumé
).Unicode-Compliant
Uses
String.prototype.normalize('NFD')
for robust Unicode decomposition, ensuring broad language support.Minimal and Efficient
The implementation is concise, fast, and does not require external libraries.
Improves URL and Slug Generation
Makes strings safer for use in URLs, slugs, and file names by removing potentially problematic characters.
Enhances Text Normalization
A useful preprocessing step in text analysis, NLP, and user input cleaning.
Tests | Examples
1test('removeDiacritics - basic accented letters', () => {
2 expect(removeDiacritics('éèêëėę')).toBe('eeeeee');
3});
4
5test('removeDiacritics - mixed string', () => {
6 expect(removeDiacritics('Crème brûlée')).toBe('Creme brulee');
7});
8
9test('removeDiacritics - string with no accents', () => {
10 expect(removeDiacritics('Hello, world!')).toBe('Hello, world!');
11});
12
13test('removeDiacritics - supports upper and lower case', () => {
14 expect(removeDiacritics('ÀÁÂãäå')).toBe('AAAAAA');
15});
16
17test('removeDiacritics - empty string', () => {
18 expect(removeDiacritics('')).toBe('');
19});
Common Use Cases
Search Engines and Autocomplete
Normalize input and database terms to allow for more forgiving and inclusive matching.
Slug and URL Generation
Convert titles or labels with accented characters into clean, readable slugs.
Username or Identifier Cleaning
Sanitize display names or input fields to a base ASCII format.
Internationalization Fallbacks
Provide a simplified fallback version of text for systems that don’t support special characters.
Data Deduplication
Help detect duplicates in datasets where names may have different diacritic usage.