Published
Edited
Jun 1, 2019
4 stars
Insert cell
Insert cell
Insert cell
Insert cell
function removeDiacritics(string) {
return string.replace(/[^\u0000-\u007e]/g, character => {
return substitutionMap.get(character) || character;
});
}
Insert cell
substitutionMap = {
const map = new Map;
for (const [substitution, characters] of substitutions) {
for (const character of characters) {
if (map.has(character)) throw new Error("duplicate replacement");
map.set(character, substitution);
}
}
return map;
}
Insert cell
substitutions = [
[" ", " "],
["0", "߀"],
["A", "ⒶAÀÁÂẦẤẪẨÃĀĂẰẮẴẲȦǠÄǞẢÅǺǍȀȂẠẬẶḀĄȺⱯ"],
["AA", "Ꜳ"],
["AE", "ÆǼǢ"],
["AO", "Ꜵ"],
["AU", "Ꜷ"],
["AV", "ꜸꜺ"],
["AY", "Ꜽ"],
["B", "ⒷBḂḄḆɃƁ"],
["C", "ⒸCꜾḈĆCĈĊČÇƇȻ"],
["D", "ⒹDḊĎḌḐḒḎĐƊƉᴅꝹ"],
["Dh", "Ð"],
["DZ", "DZDŽ"],
["Dz", "DzDž"],
["E", "ɛⒺEÈÉÊỀẾỄỂẼĒḔḖĔĖËẺĚȄȆẸỆȨḜĘḘḚƐƎᴇ"],
["F", "ꝼⒻFḞƑꝻ"],
["G", "ⒼGǴĜḠĞĠǦĢǤƓꞠꝽꝾɢ"],
["H", "ⒽHĤḢḦȞḤḨḪĦⱧⱵꞍ"],
["I", "ⒾIÌÍÎĨĪĬİÏḮỈǏȈȊỊĮḬƗ"],
["J", "ⒿJĴɈȷ"],
["K", "ⓀKḰǨḲĶḴƘⱩꝀꝂꝄꞢ"],
["L", "ⓁLĿĹĽḶḸĻḼḺŁȽⱢⱠꝈꝆꞀ"],
["LJ", "LJ"],
["Lj", "Lj"],
["M", "ⓂMḾṀṂⱮƜϻ"],
["N", "ꞤȠⓃNǸŃÑṄŇṆŅṊṈƝꞐᴎ"],
["NJ", "NJ"],
["Nj", "Nj"],
["O", "ⓄOÒÓÔỒỐỖỔÕṌȬṎŌṐṒŎȮȰÖȪỎŐǑȌȎƠỜỚỠỞỢỌỘǪǬØǾƆƟꝊꝌ"],
["OE", "Œ"],
["OI", "Ƣ"],
["OO", "Ꝏ"],
["OU", "Ȣ"],
["P", "ⓅPṔṖƤⱣꝐꝒꝔ"],
["Q", "ⓆQꝖꝘɊ"],
["R", "ⓇRŔṘŘȐȒṚṜŖṞɌⱤꝚꞦꞂ"],
["S", "ⓈSẞŚṤŜṠŠṦṢṨȘŞⱾꞨꞄ"],
["T", "ⓉTṪŤṬȚŢṰṮŦƬƮȾꞆ"],
["Th", "Þ"],
["TZ", "Ꜩ"],
["U", "ⓊUÙÚÛŨṸŪṺŬÜǛǗǕǙỦŮŰǓȔȖƯỪỨỮỬỰỤṲŲṶṴɄ"],
["V", "ⓋVṼṾƲꝞɅ"],
["VY", "Ꝡ"],
["W", "ⓌWẀẂŴẆẄẈⱲ"],
["X", "ⓍXẊẌ"],
["Y", "ⓎYỲÝŶỸȲẎŸỶỴƳɎỾ"],
["Z", "ⓏZŹẐŻŽẒẔƵȤⱿⱫꝢ"],
["a", "ⓐaẚàáâầấẫẩãāăằắẵẳȧǡäǟảåǻǎȁȃạậặḁąⱥɐɑ"],
["aa", "ꜳ"],
["ae", "æǽǣ"],
["ao", "ꜵ"],
["au", "ꜷ"],
["av", "ꜹꜻ"],
["ay", "ꜽ"],
["b", "ⓑbḃḅḇƀƃɓƂ"],
["c", "cⓒćĉċčçḉƈȼꜿↄ"],
["d", "ⓓdḋďḍḑḓḏđƌɖɗƋᏧԁꞪ"],
["dh", "ð"],
["dz", "dzdž"],
["e", "ⓔeèéêềếễểẽēḕḗĕėëẻěȅȇẹệȩḝęḙḛɇǝ"],
["f", "ⓕfḟƒ"],
["ff", "ff"],
["fi", "fi"],
["fl", "fl"],
["ffi", "ffi"],
["ffl", "ffl"],
["g", "ⓖgǵĝḡğġǧģǥɠꞡꝿᵹ"],
["h", "ⓗhĥḣḧȟḥḩḫẖħⱨⱶɥ"],
["hv", "ƕ"],
["i", "ⓘiìíîĩīĭïḯỉǐȉȋịįḭɨı"],
["j", "ⓙjĵǰɉ"],
["k", "ⓚkḱǩḳķḵƙⱪꝁꝃꝅꞣ"],
["l", "ⓛlŀĺľḷḹļḽḻſłƚɫⱡꝉꞁꝇɭ"],
["lj", "lj"],
["m", "ⓜmḿṁṃɱɯ"],
["n", "ⓝnǹńñṅňṇņṋṉƞɲʼnꞑꞥлԉ"],
["nj", "nj"],
["o", "ⓞoòóôồốỗổõṍȭṏōṑṓŏȯȱöȫỏőǒȍȏơờớỡởợọộǫǭøǿꝋꝍɵɔᴑ"],
["oe", "œ"],
["oi", "ƣ"],
["oo", "ꝏ"],
["ou", "ȣ"],
["p", "ⓟpṕṗƥᵽꝑꝓꝕρ"],
["q", "ⓠqɋꝗꝙ"],
["r", "ⓡrŕṙřȑȓṛṝŗṟɍɽꝛꞧꞃ"],
["s", "ⓢsśṥŝṡšṧṣṩșşȿꞩꞅẛʂ"],
["ss", "ß"],
["t", "ⓣtṫẗťṭțţṱṯŧƭʈⱦꞇ"],
["th", "þ"],
["tz", "ꜩ"],
["u", "ⓤuùúûũṹūṻŭüǜǘǖǚủůűǔȕȗưừứữửựụṳųṷṵʉ"],
["v", "ⓥvṽṿʋꝟʌ"],
["vy", "ꝡ"],
["w", "ⓦwẁẃŵẇẅẘẉⱳ"],
["x", "ⓧxẋẍ"],
["y", "ⓨyỳýŷỹȳẏÿỷẙỵƴɏỿ"],
["z", "ⓩzźẑżžẓẕƶȥɀⱬꝣ"]
]
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more