Я пытаюсь написать функцию, которая принимает любую строку, содержащую символы в псевдо-алфавитах юникода, и возвращает эквивалентную строку, где такие символы были заменены обычными символами, найденными в ASCII.
const toRegularCharacters = s => {
// ?
};
toRegularCharacters('ⓗⓔⓛⓛⓞ, ⓦⓞⓡⓛⓓ'); // "hello, world"
toRegularCharacters('?????, ?????'); // "hello, world"
toRegularCharacters('ん乇レレo, wo尺レd'); // "hello, world"
Я не хочу сам писать справочную таблицу. Я посмотрел на различные библиотеки "slugify", но они удаляют только акценты et c. В идеале функция должна работать в Node и браузере.
Конечно, не каждый специальный символ будет иметь обычный эквивалент. Решение должно сделать разумное предположение в этих случаях (например, "尺" -> "R"
). Это должно работать безупречно для псевдо-алфавитов с «истинными преобразованиями»:
Текущие истинные преобразования: обведены, отрицательные обведены, азиатские во всю ширину, математические полужирные, математические полужирные Fraktur, математические полужирные итальянские c, математический жирный шрифт, математический двойной штрих, математический моноширин, математический без засечек, математический без засечек жирный, математический без засечек жирный италий c, математический без засечек италийский c, скобки, символы региональных индикаторов, в квадрате, минус в квадрате и тегирование текста (невидимое для скрытых тегов метаданных).
Как мне go о this?
Переход от "обычной" строки к псевдо-алфавитной реализован здесь: https://qaz.wtf/u/convert.cgi?text=hello%2C+world