Dyslexia.js

Because I can.

by siyegen

HTML

<div class="fucked">Moo yo what's up</div>
<div class="fucked">With our powers combined...</div>
<div class="fucked">"Alright, that's enough!" she yelled.</div>
<div class="fucked">Hardcore, wild, sturmlich und laut</div>

JavaScript

$(function () {
    var reorder = $('.fucked');
    var re = /\w|\d/;
    reorder.each(function (index, element) {
        var phrase = $(element).text().trim();
        var len = phrase.length;
        var i = 0;
        var stack = [];
        console.log(phrase);
        while (i < len) {
            if (re.test(phrase[i])) {
                stack.push(i);
            }
            if (!re.test(phrase[i]) || i === len - 1) {
                if (stack.length > 2) {
                    var sh = (stack.length / 5 >= 1) ? 3 : 2;
                    console.log(stack, sh);
                    for (var j = stack.length-1; j >= stack.length - sh; j--) {
                        var ran = Math.floor(Math.random() * j);
                        var swap = stack[j];
                        stack[j] = stack[ran];
                        stack[ran] = swap;
                    }
                    console.log(stack, sh);
                }
                stack.splice(0, stack.length);
            }
            i++;
        }
    });
});