<sup></sup>
всегда находится вначале, то достаточно этого:const str = 'Travel <sup style="color:#000;" data-footnote-merchant="1676" data-footnote-index="0" class="sup-comment comm_125">125</sup>Rewards 3000 Loyalty Good and Excellent Credit';
const res = str.replace(/\d+(?!.*<\/sup>)/g, '<span>$&<\/span>');
const str = 'Travel <sup style="color:#000;" data-footnote-merchant="1676" data-footnote-index="0" class="sup-comment comm_125">125</sup>Rewards 3000 Loyalty Good and Excellent 500 Credit <sup style="color:#000;" data-footnote-merchant="1676" data-footnote-index="0" class="sup-comment comm_125">666</sup> <sup>000</sup> Good and Excellent 666';
const res = str.replace(/<sup.*?>.*?<\/sup>|(\d+)/g, (m, p1) => p1 ? `<span>${p1}<\/span>` : m);
const pairs = { a: 'ა', b: 'ბ', g: 'გ'};
const str = 'There are many ways that reading helps you to learn English.';
[...str].map(letter => pairs[letter.toLowerCase()] || letter).join``;
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()]);