JSFiddle - React, Tailwind, and code Playground

by Peter Hozák

JavaScript

'use strict';
var saferEval = function (s) {
    var deteleGlobals = 'var ' + Object.getOwnPropertyNames(window).join(',').replace(/(?:eval|chrome:[^,]*),/g, '') + ',alert,confirm,prompt,setTimeout;';
    try {
        return eval(deteleGlobals + '(' + s + ');') || s;
    } catch (e) {
        return s;
    };
};
var search = location.search ? decodeURIComponent(location.search).substring(1).split('&') : ['boo=setTimeout("alert(1)",2000)', 'filter={a: /^t.../, b: function(i){return i+1;}}'];
var params = {};
for (var i = 0, temp; i < search.length; i++) {
    temp = search[i].split('=');
    temp = temp[1] ? temp : [temp[0], null];
    params[temp[0]] = saferEval(temp[1]);
};

console.log(params);
$('body').append('test101gg102g'.match(params.filter.a));
$('body').append('<br>' + params.filter.b(666));