String#reverse method

I think this is a working method for reversing strings while respecting unicode characters:

function badReverse(str) {
  return str.split('').reverse().join('');
}

function goodReverse(str) {
  let c = [];
  str.replace(/[\u{0000}-\u{10FFFF}]/gu, (char) => {
    c.unshift(char);
  });
  return c.join('');
}

console.log(badReverse('😉abc😱ḉ123是👶'));
// ��是321ḉ��cba��

console.log(goodReverse('😉abc😱ḉ123是👶'));
// 👶是321ḉ😱cba😉
1 Like