User:Aidan9382/scripts/refsByName.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.
//Modified version of [[User:Smith609/refsByName.js]]
//This version keeps the number when adding the name and fixes the broken regex
var active = false;
function refsByName() {
	active = !active;
	var links = document.getElementsByTagName("a");
	var countLinks = links.length;
	var refName = /#cite_note-([^\"\s]*)-\d+$/;
	
	for (var i=1; i<countLinks; i++) {
		if (refName.test(links[i].href) && links[i].href) {
			var ref = refName.exec(links[i].href)[1];
			if (ref.substring(0,8) != "FOOTNOTE") {
				var cur = links[i].innerHTML;
				if (active) {
					links[i].innerHTML = "[" + cur.substring(1,cur.length-1) + " | " + ref + "]";
				} else {
					var splitter = cur.search("\\|");
					if (splitter > -1) {
						links[i].innerHTML = cur.substring(0,splitter-1) + "]";
					}
				}
			}
		}
	}
}
addOnloadHook(refsByName);
//Script can cause formatting nightmares in some scenarios, so keep a toggleoff if its activated
mw.util.addPortletLink('p-tb', 'javascript:refsByName()', "Toggle refsByName");