source: node_modules/es-toolkit/dist/string/deburr.js

Last change on this file was a762898, checked in by istevanoska <ilinastevanoska@…>, 5 months ago

Added visualizations

  • Property mode set to 100644
File size: 1000 bytes
RevLine 
[a762898]1'use strict';
2
3Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
5const deburrMap = new Map([
6 ['Æ', 'Ae'],
7 ['Ð', 'D'],
8 ['Ø', 'O'],
9 ['Þ', 'Th'],
10 ['ß', 'ss'],
11 ['æ', 'ae'],
12 ['ð', 'd'],
13 ['ø', 'o'],
14 ['þ', 'th'],
15 ['Đ', 'D'],
16 ['đ', 'd'],
17 ['Ħ', 'H'],
18 ['ħ', 'h'],
19 ['ı', 'i'],
20 ['IJ', 'IJ'],
21 ['ij', 'ij'],
22 ['ĸ', 'k'],
23 ['Ŀ', 'L'],
24 ['ŀ', 'l'],
25 ['Ł', 'L'],
26 ['ł', 'l'],
27 ['ʼn', "'n"],
28 ['Ŋ', 'N'],
29 ['ŋ', 'n'],
30 ['Œ', 'Oe'],
31 ['œ', 'oe'],
32 ['Ŧ', 'T'],
33 ['ŧ', 't'],
34 ['ſ', 's'],
35]);
36function deburr(str) {
37 str = str.normalize('NFD');
38 let result = '';
39 for (let i = 0; i < str.length; i++) {
40 const char = str[i];
41 if ((char >= '\u0300' && char <= '\u036f') || (char >= '\ufe20' && char <= '\ufe23')) {
42 continue;
43 }
44 result += deburrMap.get(char) ?? char;
45 }
46 return result;
47}
48
49exports.deburr = deburr;
Note: See TracBrowser for help on using the repository browser.