User:Omegatron/monobook.js/mathcharacterfixer.js
/*
*/*/ function mathfixer() {
var txt = document.editform.wpTextbox1;
// Convert minus sign HTML entities into actual minus signs (overlaps with dashfixer.js)
txt.value = txt.value.replace(/(−|−|−)/g, '−');
// Convert times sign HTML entities into actual times signs
txt.value = txt.value.replace(/(×|×|×)/g, '×');
// Convert plusorminus sign HTML entities into actual plusorminus signs
txt.value = txt.value.replace(/(±|±|±)/g, '±');
// Convert hyphen next to a number into a minus sign character
txt.value = txt.value.replace(/([^a-zA-Z0-9\,\_\{])-(\d)/g, '$1−$2');
// Changes 2x3 to 2×3
txt.value = txt.value.replace(/(\d\s?)x(\s?\d)/g, '$1×$2');
// Changes 10^3 to 103
// txt.value = txt.value.replace(/(\d+)\^(\d+)/g, '$1$2');
// Changes x^3 to x3
txt.value = txt.value.replace(/([0-9a-zA-Z])\^(\d+)/g, '$1$2');
// Changes tags inside
// (don't know of a way to exclude them from the above statement)
txt.value = txt.value.replace(/
// Changes 2 +/- 3 to 2±3
txt.value = txt.value.replace(/(\s|\d)\+\/?(-|−|-)(\s|\d)/g, '$1±$3');
// Add a tag to the summary box
var txt = document.editform.wpSummary;
var summary = "Regex math character fixer";
if (txt.value.indexOf(summary) == -1) {
if (txt.value.match(/[^\*\/\s][^\/\s]?\s*$/)) {
txt.value += " | ";
}
txt.value += summary;
}
// Press the diff button to check it
document.editform.wpDiff.click()
}
addOnloadHook(function () {
if(document.forms.editform) {
mw.util.addPortletLink('p-cactions', 'javascript:mathfixer()', '±', 'ca-mathfixer', 'Fixes some math characters', , );
}
});
/*