dreszczyk / Pastebin Beautifier

// ==UserScript==
// @name         Pastebin Beautifier
// @namespace    http://pajacyk.pl
// @version      0.2
// @description  Beautifuje pastebinowe JSONy
// @author       Marcin Ciarka
// @include      http://pastebin.*
// @require      http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js
// @grant        none
// ==/UserScript==

function isValidJson(text) {
    if (text.length === 0) return false;
    if (/^[\],:{}\s]*$/.test(text.replace(/\\["\\\/bfnrtu]/g, '@').replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']').replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
        console.log('treu');
        return true;
    }
    console.log('false');
    return false;
}

document.querySelector('textarea').addEventListener("blur", () => {
    const ugly = document.querySelector('textarea').value;
    if (isValidJson(ugly)) {
        const obj = JSON.parse(ugly);
        const pretty = JSON.stringify(obj, undefined, 4);
        document.querySelector('textarea').value = pretty;
    }
});

console.log(';)');