/* <pre><nowiki> */
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 10<sup>3</sup>
// txt.value = txt.value.replace(/(\d+)\^(\d+)/g, '$1<sup>$2</sup>');
// Changes x^3 to x<sup>3</sup>
txt.value = txt.value.replace(/([0-9a-zA-Z])\^(\d+)/g, '$1<sup>$2</sup>');
// Changes <sup> tags inside <math> tags back into carets
// (don't know of a way to exclude them from the above statement)
txt.value = txt.value.replace(/<math>(.*)<sup>(\d+)<\/sup>(.*)<\/math>/g, '<math>$1^$2$3</math>');
// 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 = "[[User:Omegatron#Regular expressions|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', '', '');
}
});
/* </nowiki></pre> */