navodchik131, Так если мы находим элемент sup, то мы его игнорируем и возвращаем как есть, но если найдутся цифры за пределами этого элемента, тогда мы их оборачиваем в элемент span. В этом вся логика.
navodchik131, Какие символы? Вопрос был про цифры. Регулярное выражение ищет элемент sup с любым содержимым (хоть пустой) или все цифры которые соответственно не находятся в sup.
Ninja Mate, Недавно была похожая задача и я понял, что есть более оптимальный вариант (работает с парами в отличие от предыдущей реализации с map):
const pairs = { a: 'ა', b: 'ბ', g: 'გ'};
const str = 'There are many ways that reading helps you to learn English.';
str.replace(RegExp(Object.keys(pairs).join('|'), 'gi'), letter => pairs[letter.toLowerCase()]);
olya_097, У вас в примере относительные ссылки на изображения, поэтому они не загружаются, загрузите их на Dropbox/Google Drive или купите pro в codepen.
VazgXa, Если вкратце, то мы берем ту сроку которая длиннее (если таковая имеется, иначе не важно), и начинаем складывать цифры попарно с конца обеих строк (как в школе столбиком, принцип тот же). replace в конце нужен для удаления ведущих нулей из строки если они есть.
wagoodoogoo, Эмм, в вашем варианте абсолютно ничего не поменялось. Условие всегда будет срабатывать, так как вы каждый раз объявляете isAppended = false внутри обработчика.