Handle Unicode text, emoji, encoding, normalization, code points, and safe storage.
Lessons
Cut strings without splitting a grapheme.
Truncating Text with Emoji is easiest to learn by reading the example, changing it, and observing the result.
const seg = new Intl.Segmenter('en', { granularity: 'grapheme' });
const graphemes = text => [...seg.segment(text)].map(s => s.segment);
// Reverse without corrupting emoji
const reverse = text => graphemes(text).reverse().join('');
console.log(reverse('ab😀')); // "😀ba"
// Truncate to N visible characters
const truncate = (text, n) => graphemes(text).slice(0, n).join('') + '…';
console.log(truncate('Hello👨👩👧👦 world', 6));Practice the Truncating Text with Emoji example in a small scratch file, then explain what changed and why.