removeDiacritics method
Returns a copy of this string with common diacritical marks removed.
'café'.removeDiacritics(); // "cafe"
'naïve'.removeDiacritics(); // "naive"
'Åmål'.removeDiacritics(); // "Amal"
'ハロー'.removeDiacritics(); // "ハロー" (non-Latin unaffected)
Implementation
String removeDiacritics() {
const diacritics = {
'À': 'A',
'Á': 'A',
'Â': 'A',
'Ã': 'A',
'Ä': 'A',
'Å': 'A',
'à': 'a',
'á': 'a',
'â': 'a',
'ã': 'a',
'ä': 'a',
'å': 'a',
'È': 'E',
'É': 'E',
'Ê': 'E',
'Ë': 'E',
'è': 'e',
'é': 'e',
'ê': 'e',
'ë': 'e',
'Ì': 'I',
'Í': 'I',
'Î': 'I',
'Ï': 'I',
'ì': 'i',
'í': 'i',
'î': 'i',
'ï': 'i',
'Ò': 'O',
'Ó': 'O',
'Ô': 'O',
'Õ': 'O',
'Ö': 'O',
'Ø': 'O',
'ò': 'o',
'ó': 'o',
'ô': 'o',
'õ': 'o',
'ö': 'o',
'ø': 'o',
'Ù': 'U',
'Ú': 'U',
'Û': 'U',
'Ü': 'U',
'ù': 'u',
'ú': 'u',
'û': 'u',
'ü': 'u',
'Ý': 'Y',
'ý': 'y',
'ÿ': 'y',
'Ç': 'C',
'ç': 'c',
'Ñ': 'N',
'ñ': 'n',
'Š': 'S',
'š': 's',
'Ž': 'Z',
'ž': 'z',
'Æ': 'AE',
'æ': 'ae',
'Œ': 'OE',
'œ': 'oe',
'ß': 'ss',
};
return split('').map((char) => diacritics[char] ?? char).join();
}