User:Qwerfjkl/scripts/massReplace.js

Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
// <syntaxhighlight lang=javascript>
// Adds a "Replace" tab which pops up two prompt boxes; one for a regexp and one for a replacement
function wpTextboxMassReplace()
{
    var s = prompt("Search regexp:");
    var txt = document.editform.wpTextbox1;
    while (true) {
        if (!s) return;
        var s_r = new RegExp(s, "m");
        if (s_r.test(txt.value)) {
            var r = prompt("Replace /"+s+"/ with:");
            r = r.replace(/\\n/g,"\n"); // unescape newlines
            if (!r && r !== '') return;
            var count = prompt( "How many times do you want to run the regexp?" )
            if (!count && count !== '') return;
            for (var i = 0; i < count; i++) {
            	txt.value = txt.value.replace(s_r, r);
            }
            return;
        }
        else {
            var s_0 = s;
            s = prompt("/" + s_0 + "/ did not match anything. You may enter a new regexp:");
        }
    }
}
addOnloadHook(function () {
    if (document.forms.editform) {
        mw.util.addPortletLink('p-cactions', 'javascript:wpTextboxMassReplace()', 'Replace-mass', 'ca-massreplace',
                       'Regexp replace for the edit window', 'R', document.getElementById('ca-history'));
    }
});

// </syntaxhighlight>

//

// [[:Category:Wikipedia scripts]]