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(/(&#x2212;|&#8722;|&minus;)/g, '−');

// Convert times sign HTML entities into actual times signs txt.value = txt.value.replace(/(&#x00D7;|&#215;|&times;)/g, '×');

// Convert plusorminus sign HTML entities into actual plusorminus signs txt.value = txt.value.replace(/(&#x00B1;|&#177;|&plusmn;)/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 tags back into carets // (don't know of a way to exclude them from the above statement) txt.value = txt.value.replace(/(.*) (\d+)<\/sup>(.*)<\/math>/g, '$$$1^$2$3$$');

// 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', , );    } });

/* */