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

}

});

/*

*/