JSFiddle - React, Tailwind, and code Playground

by nate

HTML

<p>It's nobody's business but the Turks.</p>

JavaScript

function encode(str) {
    // Remove punctuation and spaces
    str = str.replace(/[^\w]/g, '');
    
    // Use a magical regex to split a string into sets of 5 chars
    // NO! NO MAGICAL REGEX.
    // var sets = str.match(/.{1,5}/g);
    
    // Let's use the beautiful magic of recursion instead
    function nCharSets(str, n, set) {
        set = set || [];
        
        if (str.length <= n) {
            set.push(str);
            return set;
        } else {
            set.push(str.substring(0, n));
            str = str.substring(n);
            return nCharSets(str, n, set);
        }
    }
    
    sets = nCharSets(str, 5);
    
    for (var i = 0, length = sets.length; i < length; i += 1) {
        var set = sets[i];
        
        set = set.split('');
        set = set.reverse();
        set = set.join('');
        
        sets[i] = set;
    }
    
    str = sets.join(' ');
    
    return str;
}

var result = encode("It's nobody's business but the Turks.");

$('<p>', { text: result }).appendTo('body');