Skip to content

Instantly share code, notes, and snippets.

@mr21
Last active June 1, 2021 08:18
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mr21/eb50663ac96583c112d489befa779bae to your computer and use it in GitHub Desktop.
Save mr21/eb50663ac96583c112d489befa779bae to your computer and use it in GitHub Desktop.
JavaScript function to remove every special char on strings (to sort them, search them, etc.).
"use strict";
function diacriticsReplace( str ) {
return str.replace( /[^A-Za-z0-9\s]+/g, function( a ) {
return diacriticsMap[ a ] || a;
} );
}
var diacriticsMap = {
"\u00C0": "A", // À
"\u00C1": "A", // Á
"\u00C2": "A", // Â
"\u00C3": "A", // Ã
"\u00C4": "A", // Ä
"\u00C5": "A", // Å
"\u00C6": "AE", // Æ
"\u00C7": "C", // Ç
"\u00C8": "E", // È
"\u00C9": "E", // É
"\u00CA": "E", // Ê
"\u00CB": "E", // Ë
"\u00CC": "I", // Ì
"\u00CD": "I", // Í
"\u00CE": "I", // Î
"\u00CF": "I", // Ï
"\u0132": "IJ", // IJ
"\u00D0": "D", // Ð
"\u00D1": "N", // Ñ
"\u00D2": "O", // Ò
"\u00D3": "O", // Ó
"\u00D4": "O", // Ô
"\u00D5": "O", // Õ
"\u00D6": "O", // Ö
"\u00D8": "O", // Ø
"\u0152": "OE", // Œ
"\u00DE": "TH", // Þ
"\u00D9": "U", // Ù
"\u00DA": "U", // Ú
"\u00DB": "U", // Û
"\u00DC": "U", // Ü
"\u00DD": "Y", // Ý
"\u0178": "Y", // Ÿ
"\u00E0": "a", // à
"\u00E1": "a", // á
"\u00E2": "a", // â
"\u00E3": "a", // ã
"\u00E4": "a", // ä
"\u00E5": "a", // å
"\u00E6": "ae", // æ
"\u00E7": "c", // ç
"\u00E8": "e", // è
"\u00E9": "e", // é
"\u00EA": "e", // ê
"\u00EB": "e", // ë
"\u00EC": "i", // ì
"\u00ED": "i", // í
"\u00EE": "i", // î
"\u00EF": "i", // ï
"\u0133": "ij", // ij
"\u00F0": "d", // ð
"\u00F1": "n", // ñ
"\u00F2": "o", // ò
"\u00F3": "o", // ó
"\u00F4": "o", // ô
"\u00F5": "o", // õ
"\u00F6": "o", // ö
"\u00F8": "o", // ø
"\u0153": "oe", // œ
"\u00DF": "ss", // ß
"\u00FE": "th", // þ
"\u00F9": "u", // ù
"\u00FA": "u", // ú
"\u00FB": "u", // û
"\u00FC": "u", // ü
"\u00FD": "y", // ý
"\u00FF": "y", // ÿ
"\uFB00": "ff", // ff
"\uFB01": "fi", // fi
"\uFB02": "fl", // fl
"\uFB03": "ffi", // ffi
"\uFB04": "ffl", // ffl
"\uFB05": "ft", // ſt
"\uFB06": "st", // st
};
@ambsoerensen
Copy link

Thank u sir!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment