fancy-text-converter
Version:
Converts a given text from https://lingojam.com/FancyTextGenerator to it's normal string equivalent
108 lines (104 loc) • 7.32 kB
JavaScript
const punycode = require('punycode');
var map = {
" ": " ",
"&": "⅋",
"%": ["⅍", "℀", "℁", "℆", "℅"],
"0": ["0", "Ѳ", "ʘ"],
"1": ["➀", "❶", "1"],
"2": ["2", "❷", "➁"],
"3": ["3", "❸", "➂"],
"4": ["4", "❹", "➃"],
"5": ["❺", "➄", "5"],
"6": ["6", "❻", "➅"],
"7": ["7", "❼", "➆"],
"8": ["8", "➇", "❽"],
"9": ["➈", "❾", "9"],
"<": ["≼", "≺", "≪", "☾", "≾", "⋜", "⋞", "⋐", "⊂", "⊏", "⊑", "《", "<", "❮", "❰", "⫷"],
">": ["☽","≫","≻","≽","≿","⋝","⋟","⋑","⊃","⊐","⊒","⫸","》",">","❯❱"],
"[": ["【","〖","〘","〚","["],
"]": ["】","〗","〙","〛","]"],
"*": ["✨","✩","✪","✫","✬","✭","✮","✯","✰","✦","✱","✲","✳","✴","✵","✶","✷","֍","֎","✸","✹","✺","✻","✼","✽","✾","✿","❀","❁","❂","❃","❄","★","☆","*"],
"(": ["(","(","🐝☝ ( 🏆🍧","(","(","(","(","🌠★ 🎀 ( 🎀 ★🌠","(","(⃣","(⃞","(","(̴̟̫͇̳̬̃̏̓̊͗","(","₍","⁽","(⃝","("],
")": [")","⛵☠ ) ♛☠",")","•?((¯°·._.• 🎀 ) 🎀 •._.·°¯((?•","(",")⃣",")⃞",")̸͇̻̞͕̿̉͑̌̑͐̌͒̔̃͜ͅ","₎","⁾",")⃝"],
"a": ["ⓐ", "α", "a", "Δ", "ค", "α", "ά", "𝔞", "𝓪", "𝒶", "𝐚", "𝕒", "ᵃ", "𝙖"],
"b": ["ⓑ", "b", "β", "๒", "β", "𝔟", "𝓫", "𝒷", "𝐛", "𝕓", "ᵇ", "𝙗"],
"c": ["ⓒ", "¢", "c", "Ć", "ς", "c", "ς", "𝔠", "𝓬", "𝒸", "𝐜", "𝕔", "ᶜ", "𝙘"],
"d": ["ⓓ", "∂", "d", "๔", "∂", "đ", "𝔡", "𝓭", "𝒹", "𝐝", "𝕕", "ᵈ", "𝙙"],
"e": ["ⓔ", "є", "e", "€", "є", "ε", "έ", "𝔢", "𝒆", "𝑒", "𝓔", "𝐞", "𝕖", "ᵉ", "𝙚"],
"f": ["ⓕ", "ƒ", "f", "ℱ", "Ŧ", "ғ", "ғ", "𝔣", "𝒇", "𝒻", "𝐟", "𝕗", "ᶠ", "𝙛"],
"g": ["ⓖ", "ق", "g", "g", "ﻮ", "g", "ģ", "𝔤", "𝓰", "𝑔", "𝓖", "𝐠", "𝕘", "ᵍ", "𝙜"],
"h": ["ⓗ", "h", "ђ", "ħ", "𝔥", "𝓱", "𝒽", "𝐡", "𝕙", "ʰ", "𝙝"],
"i": ["ⓘ", "ι", "i", "Ꭵ", "เ", "ι", "ί", "𝔦", "𝓲", "𝒾", "𝐢", "𝕚", "ᶤ", "𝙞"],
"j": ["ⓙ", "נ", "ڶ", "j", "ᒎ", "Ĵ", "ן", "נ", "ј", "Ĵ", "𝔧", "𝓳", "𝒿", "𝐣", "𝕛", "ʲ"],
"k": ["ⓚ", "к", "k", "к", "к", "ķ", "Ќ", "𝔨", "𝓴", "𝓀", "𝐤", "𝕂", "𝕜", "ᵏ", "𝙠"],
"l": ["ⓛ", "ℓ", "l", "Ł", "l", "ℓ", "𝔩", "𝓵", "𝓁", "𝓛", "𝐥", "𝕝", "ˡ", "𝙡"],
"m": ["ⓜ", "м", "m", "๓", "м", "м", "ϻ", "𝔪", "𝓶", "𝓂", "𝐦", "𝕞", "ᵐ", "𝙢"],
"n": ["ⓝ", "η", "n", "ภ", "η", "ή", "𝔫", "𝓷", "𝓃", "𝐧", "𝕟", "ᶰ", "𝙣"],
"o": ["ㄖ", "σ", "o", "Ø", "๏", "σ", "ό", "Ỗ", "𝔬", "𝓸", "𝑜", "𝐨", "𝕠", "ᵒ", "𝙤"],
"p": ["ⓟ", "ρ", "p", "ᑭ", "Ƥ", "ק", "ρ", "ρ", "Ƥ", "𝔭", "𝓹", "𝓅", "𝐩", "𝕡", "ᵖ", "𝙥"],
"q": ["ⓠ", "q", "q", "Ɋ", "ợ", "q", "q", "𝔮", "𝓺", "𝓆", "𝐪", "𝕢", "ᵠ"],
"r": ["ⓡ", "r", "г", "ŕ", "𝔯", "𝓻", "𝓇", "𝐫", "𝕣", "ʳ", "𝙧"],
"s": ["ⓢ", "ѕ", "s", "ร", "s", "ş", "𝔰", "𝓼", "𝓈", "𝐬", "𝕤", "ˢ", "𝙨"],
"t": ["ⓣ", "т", "t", "Ŧ", "t", "т", "ţ", "𝔱", "𝓽", "𝓉", "𝐭", "𝕥", "ᵗ", "𝙩"],
"u": ["ⓤ", "υ", "u", "Ữ", "ย", "υ", "ù", "𝔲", "𝓾", "𝓊", "𝐮", "𝕦", "ᵘ", "𝙪"],
"v": ["ⓥ", "ν", "v", "ש", "v", "ν", "𝔳", "𝓿", "𝓋", "𝐯", "𝕧", "ᵛ", "𝙫"],
"w": ["ⓦ", "ω", "w", "ฬ", "ω", "ώ", "𝔴", "𝔀", "𝓌", "𝐰", "𝕨", "ʷ", "𝙬"],
"x": ["ⓧ", "x", "Ж", "א", "x", "x", "Ж", "𝔵", "𝔁", "𝓍", "𝐱", "𝕩", "ˣ"],
"y": ["ⓨ", "у", "y", "¥", "ץ", "ү", "ч", "Ў", "𝔶", "𝔂", "𝓎", "𝐲", "𝕪", "ʸ", "𝙮"],
"z": ["ⓩ", "z", "z", "Ƶ", "z", "z", "ž", "Ż", "𝔷", "𝔃", "𝓏", "𝐳", "𝕫", "ᶻ"],
"A": ["Ⓐ", "A", "ᗩ", "卂", "Δ", "Ã", "𝓐", "𝐀", "𝔸", "𝘼"],
"B": ["Ⓑ", "в", "B", "乃", "ᗷ", "в", "в", "𝓑", "𝐁", "𝔹", "𝘽"],
"C": ["Ⓒ", "匚", "C", "ᑕ", "Č", "℃", "𝓒", "𝐂", "ℂ", "𝘾"],
"D": ["Ⓓ", "D", "ᗪ", "Đ", "Ď", "𝓓", "𝐃", "ᗪ", "𝔻", "𝘿"],
"E": ["Ⓔ", "乇", "E", "ᗴ", "Ẹ", "𝐄", "𝔼"],
"F": ["Ⓕ", "F", "千", "ᖴ", "Ƒ", "𝓕", "𝐅", "𝔽", "𝙁"],
"G": ["Ⓖ", "G", "Ǥ", "Ꮆ", "Ğ", "𝐆", "𝔾", "Ꮆ"],
"H": ["Ⓗ", "卄", "н", "H", "ᕼ", "Ħ", "н", "Ĥ", "𝓗", "𝐇", "ℍ"],
"I": ["Ⓘ", "ι", "I", "丨", "Ɨ", "Į", "𝓘", "𝐈", "𝕀"],
"J": ["Ⓙ", "J", "𝓙", "𝐉", "𝕁"],
"K": ["Ⓚ", "K", "ᛕ", "𝓚", "𝐊", "Ҝ"],
"L": ["Ⓛ", "ㄥ", "L", "ᒪ", "Ļ", "Ĺ", "𝐋", "𝕃"],
"M": ["Ⓜ", "M", "ᗰ", "Μ", "𝓜", "𝐌", "𝕄", "爪", "𝙈"],
"N": ["Ⓝ", "几", "N", "ᑎ", "Ň", "Ň", "𝓝", "𝐍", "ℕ", "𝙉"],
"O": ["Ⓞ", "ⓞ", "O", "ᗝ", "𝓞", "𝐎", "𝕆", "𝙊"],
"P": ["Ⓟ", "P", "卩", "𝓟", "𝐏", "ℙ", "𝙋"],
"Q": ["Ⓠ", "Q", "Ω", "Ǫ", "𝓠", "𝐐", "ℚ"],
"R": ["Ⓡ", "я", "尺", "R", "ᖇ", "Ř", "я", "Ř", "𝓡", "𝐑", "ℝ"],
"S": ["Ⓢ", "S", "丂", "ᔕ", "Ş", "Ŝ", "𝓢", "𝐒", "𝕊", "𝙎"],
"T": ["Ⓣ", "T", "丅", "Ť", "𝓣", "𝐓", "𝕋"],
"U": ["Ⓤ", "U", "ᑌ", "Ǘ", "𝓤", "𝐔", "𝕌"],
"V": ["Ⓥ", "V", "ᐯ", "V", "Ѷ", "𝓥", "𝐕", "𝕍"],
"W": ["Ⓦ", "W", "ᗯ", "Ŵ", "𝓦", "𝐖", "𝕎", "山"],
"X": ["Ⓧ", "χ", "X", "乂", "᙭", "𝓧", "𝐗", "𝕏"],
"Y": ["Ⓨ", "ㄚ", "Y", "Ƴ", "𝓨", "𝐘", "𝕐"],
"Z": ["Ⓩ", "乙", "Z", "Ž", "𝓩", "𝐙", "ℤ"]
};
var normalise = function normalise(characterString) {
var normalisedString = "";
//console.log(`Length: ${characterString.length}`);
//console.log(`Punycode length: ${punycode.ucs2.decode(characterString).length}`);
var punycodeArray = punycode.ucs2.decode(characterString);
for (var i = 0; i < punycodeArray.length; i++) {
var key = getKeyByValue(map, punycodeArray[i]);
if(!key) key = punycodeArray[i];
normalisedString += key;
//console.log(`Character: ${punycodeArray[i]}\tKey: ${key}`);
}
return normalisedString;
}
var getKeyByValue = function getKeyByValue(object, value) {
var foundKey = "";
Object.keys(object).find(key => {
for (i in object[key]) {
if (punycode.ucs2.decode(object[key][i]).toString().normalize() === value.toString().normalize()) {
//console.log(`key: ${key}\tPunycode i: ${punycode.ucs2.decode(object[key][i])}\tValue: ${value} isEqual?: ${punycode.ucs2.decode(object[key][i]).toString().normalize() === value.toString().normalize()}`);
foundKey = key;
}
}
});
return foundKey;
}
module.exports = {
normalise,
getKeyByValue
};