const charDict = {
a: ['∀', '₳', 'Ä'],
b: ['Ᏸ', 'β', '฿', 'ß'],
c: ['ℭ', 'Ç', 'Ꮸ', '₡'],
d: ['Ɗ', 'Ď', 'Đ'],
e: ['£', 'Ē', 'ξ', 'Ê', 'È', '€', 'É', '∑', 'Ế', 'Ề', 'Ể', 'Ễ'],
f: ['ℱ', '₣', 'ƒ', '∮', 'Ḟ', 'ჶ'],
g: ['Ꮹ', 'Ꮆ', 'Ǥ', '₲'],
h: ['ℍ', 'ℋ', 'ℌ', 'ዙ', 'Ĥ', 'Ħ'],
i: ['ℐ', 'ℑ', 'Ï'],
j: ['ჟ', 'Ĵ'],
k: ['₭', 'Ꮶ', 'Ќ', 'Ķ', 'Ҝ', 'ﻸ'],
l: ['ℒ', 'ℓ', 'Ŀ', '£', 'λ', '₤', 'Ł', 'Ꮭ', '£', 'Ꮑ'],
m: ['ℳ', 'ʍ', 'Ḿ', '爪'],
n: ['ℕ', 'η', 'Ñ', 'Ŋ', 'Ń', 'ℵ', '₦'],
o: ['ტ', 'Ǿ', 'Θ', 'Ø', 'Ό', 'Ở', 'Ờ', 'Ớ', 'Ổ'],
p: ['ℙ', '℘', 'þ', '尸', 'Ҏ', '₱'],
q: ['ℚ', 'Q', 'Q'],
r: ['ℝ', 'ℜ', 'ℛ', '℟', 'ჩ', 'Ꮢ', '尺'],
s: ['Ꮥ', 'Ṧ', 'ى', '§', 'Ś', 'Ŝ', '₰', '∫', '$', 'ֆ'],
t: ['₸', '†', 'T', 'Ţ', 'Ŧ', 'ィ', '干', 'Ṫ', 'テ', '₮'],
u: ['∪', 'Ũ', '⋒', 'Ủ', 'Ừ', 'Ử', 'Ữ', 'Ự', 'Џ'],
v: ['∨', '√', 'Ꮙ', 'Ṽ', '/', '℣'],
w: ['₩', 'Ẃ', 'Ẁ', 'ώ', 'ω', 'Ŵ', 'Ꮤ', 'Ꮃ', 'ฬ', 'Ẅ', 'ѡ', 'Ꮚ', 'Ꮗ', 'ผ', 'ฝ', 'พ', 'ฟ'],
x: ['χ', 'ჯ', 'Ẍ', 'ẍ', 'ᶍ'],
y: ['ɣ', 'Ꭹ', 'Ꮍ', 'Ẏ', 'ẏ', 'ϒ', 'ɤ', '¥', 'り'],
z: ['ℤ', 'ℨ', 'ჳ', '乙', 'Ẑ', 'ẑ', 'ɀ', 'Ꮓ']
}
function replaceChars(str) {
return str.split('').map(char => {
char = char.toLowerCase();
return (char in charDict) ? charDict[char][Math.floor(Math.random() * charDict[char].length)] : char;
}).join('');
}
const symbols = 'фывап'; // ваши символы
const rnd = () => symbols[Math.floor(Math.random() * symbols.length)]; // получить случайный символ
const re = /\D/g; // регулярка, ищущая любые не цифровые символы
const magic = str => str.replace(re, rnd); // вот и все!
str.replace(re, rnd);
str.replace(re, retReplace);
function getReplace(key) {
const allSymbols = {
a: ['∀', '₳', 'Ä'],
b: ['Ᏸ', 'β', '฿', 'ß'],
c: ['ℭ', 'Ç', 'Ꮸ', '₡'],
d: ['Ɗ', 'Ď', 'Đ'],
e: ['£', 'Ē', 'ξ', 'Ê', 'È', '€', 'É', '∑', 'Ế', 'Ề', 'Ể', 'Ễ'],
f: ['ℱ', '₣', 'ƒ', '∮', 'Ḟ', 'ჶ'],
g: ['Ꮹ', 'Ꮆ', 'Ǥ', '₲'],
h: ['ℍ', 'ℋ', 'ℌ', 'ዙ', 'Ĥ', 'Ħ'],
i: ['ℐ', 'ℑ', 'Ï'],
j: ['ჟ', 'Ĵ'],
k: ['₭', 'Ꮶ', 'Ќ', 'Ķ', 'Ҝ', 'ﻸ'],
l: ['ℒ', 'ℓ', 'Ŀ', '£', 'λ', '₤', 'Ł', 'Ꮭ', '£', 'Ꮑ'],
m: ['ℳ', 'ʍ', 'Ḿ', '爪'],
n: ['ℕ', 'η', 'Ñ', 'Ŋ', 'Ń', 'ℵ', '₦'],
o: ['ტ', 'Ǿ', 'Θ', 'Ø', 'Ό', 'Ở', 'Ờ', 'Ớ', 'Ổ'],
p: ['ℙ', '℘', 'þ', '尸', 'Ҏ', '₱'],
q: ['ℚ', 'Q', 'Q'],
r: ['ℝ', 'ℜ', 'ℛ', '℟', 'ჩ', 'Ꮢ', '尺'],
s: ['Ꮥ', 'Ṧ', 'ى', '§', 'Ś', 'Ŝ', '₰', '∫', '$', 'ֆ'],
t: ['₸', '†', 'T', 'Ţ', 'Ŧ', 'ィ', '干', 'Ṫ', 'テ', '₮'],
u: ['∪', 'Ũ', '⋒', 'Ủ', 'Ừ', 'Ử', 'Ữ', 'Ự', 'Џ'],
v: ['∨', '√', 'Ꮙ', 'Ṽ', '\\/', '℣'],
w: ['₩', 'Ẃ', 'Ẁ', 'ώ', 'ω', 'Ŵ', 'Ꮤ', 'Ꮃ', 'ฬ', 'Ẅ', 'ѡ', 'Ꮚ', 'Ꮗ', 'ผ', 'ฝ', 'พ', 'ฟ'],
x: ['χ', 'ჯ', 'Ẍ', 'ẍ', 'ᶍ'],
y: ['ɣ', 'Ꭹ', 'Ꮍ', 'Ẏ', 'ẏ', 'ϒ', 'ɤ', '¥', 'り'],
z: ['ℤ', 'ℨ', 'ჳ', '乙', 'Ẑ', 'ẑ', 'ɀ', 'Ꮓ'],
};
const symbols = allSymbols[key];
return symbols[Math.floor(Math.random() * symbols.length)];
}