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');