User:Bobblewik/monobook.js/unitformatter.js: Difference between revisions

Content deleted Content added
Bobblewik (talk | contribs)
mNo edit summary
m Maintenance: Replacing addOnloadHook with native jQuery (mw:ResourceLoader/Migration_guide_(users)#addOnloadHook - phab:T130879)
 
(22 intermediate revisions by one other user not shown)
Line 9:
txt.value = txt.value.replace(/°/g, '°');
txt.value = txt.value.replace(/º/g, '°');
 
// Celsius spelling errors
txt.value = txt.value.replace(/celsius/gi, 'Celsius');
txt.value = txt.value.replace(/celcius/gi, 'Celsius');
//Fix common naming error (be careful with this one)
txt.value = txt.value.replace(/centigrade/gi, 'Celsius');
 
//Celsius
//txt.value = txt.value.replace(/\[\[(celsius)\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[celsius\|([^\]]{1,30})\]\]/gi, '$1');
 
//Fahrenheit
//txt.value = txt.value.replace(/\[\[(Fahrenheit)\]\]/gi, '$1');
// txt.value = txt.value.replace(/\[\[Fahrenheit\|([^\]]{1,30})\]\]/gi, '$1');
 
//Celsius or Fahrenheit
txt.value = txt.value.replace(/°\s([CF])/g, '°$1');
txt.value = txt.value.replace(/°\s?(celsius)/gi, '°C');
Line 18 ⟶ 34:
txt.value = txt.value.replace(/(\d)\s?° ([CF])/g, '$1 °$2');
 
// Celsius spelling errors
txt.value = txt.value.replace(/celsius/gi, 'Celsius');
txt.value = txt.value.replace(/celcius/gi, 'Celsius');
//Fix common naming error (be careful with this one)
txt.value = txt.value.replace(/centigrade/gi, 'Celsius');
 
// Convert &sup to superscript
Line 31 ⟶ 42:
txt.value = txt.value.replace(/(\d)\s?(μ|μ|µ)(g|s|m|A|K|mol|cd|rad|sr|Hz|N|J|W|Pa|lm|lx|C|V|Ω|F|Wb|T|H|S|Bq|Gy|Sv|kat|M)(\W)/g, '$1 µ$3$4');
 
//metre: space before 'm' only when lower case
//txt.value = txt.value.replace(/\[\[(metres?)\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[(meters?)\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[metres?\|([^\]]{1,30})\]\]/gi, '$1');
//space before 'm' only when lower case
txt.value = txt.value.replace(/(\d)\s?m(\W)/g, '$1 m$2');
txt.value = txt.value.replace(/(\d)\-m(\W)/g, '$1 m$2');
Line 39 ⟶ 54:
 
// millimetre
//txt.value = txt.value.replace(/\[\[(mm)\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[(millimetres?)\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[(millimeters?)\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[millimetres?\|([^\]]{1,30})\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[millimeters?\|([^\]]{1,30})\]\]/gi, '$1');
txt.value = txt.value.replace(/(\d)\s?mm(\W)/g, '$1 mm$2');
txt.value = txt.value.replace(/(\d)\-mm(\W)/g, '$1 mm$2');
 
// centimetre
//txt.value = txt.value.replace(/\[\[(cm)\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[(centimetres?)\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[(centimeters?)\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[centimetres?\|([^\]]{1,30})\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[centimeters?\|([^\]]{1,30})\]\]/gi, '$1');
 
// kilometre
//txt.value = txt.value.replace(/\[\[(km)\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[(kilometres?)\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[(kilometers?)\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[kilometres?\|([^\]]{1,30})\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[kilometers?\|([^\]]{1,30})\]\]/gi, '$1');
txt.value = txt.value.replace(/(\d)\s?kms?(\W)/gi, '$1 km$2');
txt.value = txt.value.replace(/(\d)\-kms?(\W)/gi, '$1 km$2');
txt.value = txt.value.replace(/(\d) kms?(\W)/gi, '$1 km$2');
//square kilometre
//txt.value = txt.value.replace(/\[\[square kilometres?\|([^\]]{1,30})\]\]/gi, '$1');
txt.value = txt.value.replace(/(\d)\s?sq\.?\s?kms?/gi, '$1 km²');
txt.value = txt.value.replace(/sq\.?\s?kms?/gi, 'km²');
Line 69 ⟶ 102:
txt.value = txt.value.replace(/(\d)\-ml(\W)/g, '$1 ml$2');
 
// per second
txt.value = txt.value.replace(/\[\[(s)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[(seconds?)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[seconds?\|([^\]]{1,30})\]\]/gi, '$1');
txt.value = txt.value.replace(/\/sec(\W)/gi, '/s$1');
txt.value = txt.value.replace(/\/sec\)/gi, '/s)$1');
Line 78 ⟶ 114:
txt.value = txt.value.replace(/frames\/s(\W)/gi, 'frame/s$1');
 
// per hourminute
txt.value = txt.value.replace(/\[\[(min)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[(minutes?)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[minutes?\|([^\]]{1,30})\]\]/gi, '$1');
 
// hour
txt.value = txt.value.replace(/\[\[(h)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[(hours?)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[hours?\|([^\]]{1,30})\]\]/gi, '$1');
txt.value = txt.value.replace(/\/hr(\W)/gi, '/h$1');
 
//day
txt.value = txt.value.replace(/\[\[(d)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[(days?)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[days?\|([^\]]{1,30})\]\]/gi, '$1');
 
// kilogram
txt.value = txt.value.replace(/(kilogram)me/gi, '$1');
txt.value = txt.value.replace(/(\W)(gram)mes?(\W)/gi, '$1$2$3');
//txt.value = txt.value.replace(/\[\[(grams?)\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[grams?\|([^\]]{1,30})\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[(kg)\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[(kilograms?)\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[kilograms?\|([^\]]{1,30})\]\]/gi, '$1');
txt.value = txt.value.replace(/(\d)\s?kg(\W)/gi, '$1 kg$2');
txt.value = txt.value.replace(/(\d)\-kg(\W)/gi, '$1 kg$2');
Line 100 ⟶ 156:
// ohm
txt.value = txt.value.replace(/(\d)\s?(Y|Z|E|P|T|G|M|k|K|h|da|d|c|m|µ|μ|µ|n|p|f|a|z|y)?\s?(Ω|ohm|Ohm)s?(\W)/g, '$1 $2Ω$4');
 
// mile per hour
txt.value = txt.value.replace(/m\.p\.h\.(\W)/g, 'mph$1');
txt.value = txt.value.replace(/(\W)mph(\W)/gi, '$1mph$2');
txt.value = txt.value.replace(/(\d)\s?mph/gi, '$1 mph');
txt.value = txt.value.replace(/(\d)\-mph/gi, '$1 mph');
 
// pound weight
//txt.value = txt.value.replace(/(\d)\s?(\[\[lbs?\]\])/gi, '$1 lb');
//txt.value = txt.value.replace(/\[\[\pound\s\(mass\)\|([^\]]{1,30})\]\]/gi, '$1');
txt.value = txt.value.replace(/(\d)\s?lbs?/gi, '$1 lb');
txt.value = txt.value.replace(/(\d\+?)\s?lbs?/gi, '$1 lb');
txt.value = txt.value.replace(/(\d) lbs?/gi, '$1 lb');
txt.value = txt.value.replace(/(\d)\s?(slb.\[\[lbs\]\])/gi, '$1 \[\[Pound (masslb)|lb\]\]');
 
// foot and inch
//txt.value = txt.value.replace(/(\[^;°h]\[^;°h]\s)(\d{1,4}inch)\s?['’]\s?(\d{1,3})\s?["”]([^NESW])/ggi, '$1$2 ft $3 in$4');
//txt.value = txt.value.replace(/(\[\[(\|:]\s?\d{1,4}inches)\s?['’]\s?(\d{1,3})\s?["”]([^NESW])/ggi, '$1 ft $2 in$3');
//txt.value = txt.value.replace(/(\d)[\s?ft[inch\s|([^\d]]{1,330})\s?in]\]/gi, '$1 ft $2 in');
//txt.value = txt.value.replace(/\[\[inches\|([^\]]{1,30})\]\]/gi, '$1');
 
//foot
//txt.value = txt.value.replace(/\[\[foot\s\(unit\sof\slength\)\|([^\]]{1,30})\]\]/gi, '$1');
txt.value = txt.value.replace(/(\d)\s?ft(\W)/gi, '$1 ft$2');
txt.value = txt.value.replace(/(\d)\-ft(\W)/gi, '$1 ft$2');
Line 122 ⟶ 178:
 
// square foot
txt.value = txt.value.replace(/sq\.?\s?ft?/gi, 'sq ft');
 
// foot and inch
//txt.value = txt.value.replace(/([^;°h]{1,4})(\d{1,4})\s?['’]\s?(\d{1,3})\s?["”]([^NESW])/g, '$1$2 ft $3 in$4');
txt.value = txt.value.replace(/(ength[.]{1,3})(\d{1,4})\s?['’]\s?(\d{1,3})\s?["”]/gi, '$1$2 ft $3 in');
txt.value = txt.value.replace(/(idth[.]{1,3})(\d{1,4})\s?['’]\s?(\d{1,3})\s?["”]/gi, '$1$2 ft $3 in');
txt.value = txt.value.replace(/([\(\|:]\s?\d{1,4})\s?['’]\s?(\d{1,3})\s?["”]([^NESW])/g, '$1 ft $2 in$3');
txt.value = txt.value.replace(/(\d)\s?ft\s?(\d{1,3})\s?in/gi, '$1 ft $2 in');
 
// yard
Line 129 ⟶ 192:
txt.value = txt.value.replace(/sq\.?\s?yds?/gi, 'sq yd');
txt.value = txt.value.replace(/yd\.\)/gi, 'yd)');
 
// mile and mile per hour
//txt.value = txt.value.replace(/\[\[miles?\|([^\]]{1,30})\]\]/gi, '$1');
//txt.value = txt.value.replace(/\[\[(miles?)\]\]/gi, '$1');
txt.value = txt.value.replace(/m\.p\.h\.(\W)/g, 'mph$1');
txt.value = txt.value.replace(/(\W)mph(\W)/gi, '$1mph$2');
txt.value = txt.value.replace(/(\d)\s?mph/gi, '$1 mph');
txt.value = txt.value.replace(/(\d)\-mph/gi, '$1 mph');
 
// square mile
Line 185 ⟶ 256:
 
//Remove 'Easter egg' diversions (linking unit name to orders of magnitude articles)
txt.value = txt.value.replace(/\[\[1\s?_?E\s?\-?\d{1,2}\s?..?\|([^\]]{1,50})\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[Orders\sof\smagnitude\s\([^\)]{1,30}\)\|([^\]]{1,50})\]\]/gi, '$1');
 
//No need to explain common units
txt.value = txt.value.replace(/\[\[(metres?)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[(meters?)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[metres?\|([^\]]{1,30})\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[(mm)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[(millimetres?)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[(millimeters?)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[millimetres?\|([^\]]{1,30})\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[millimeters?\|([^\]]{1,30})\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[(cm)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[(centimetres?)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[(centimeters?)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[centimetres?\|([^\]]{1,30})\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[centimeters?\|([^\]]{1,30})\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[(km)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[(kilometres?)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[(kilometers?)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[kilometres?\|([^\]]{1,30})\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[kilometers?\|([^\]]{1,30})\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[square kilometres?\|([^\]]{1,30})\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[(grams?)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[grams?\|([^\]]{1,30})\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[(kg)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[(kilograms?)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[kilograms?\|([^\]]{1,30})\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[(celsius)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[celsius\|([^\]]{1,30})\]\]/gi, '$1');
 
txt.value = txt.value.replace(/\[\[miles?\|([^\]]{1,30})\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[(miles?)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[(Fahrenheit)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[Fahrenheit\|(F)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[(inch)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[(inches)\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[inch\|([^\]]{1,30})\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[inches\|([^\]]{1,30})\]\]/gi, '$1');
txt.value = txt.value.replace(/\[\[foot\s\(unit\sof\slength\)\|([^\]]{1,30})\]\]/gi, '$1');
 
Line 241 ⟶ 274:
}
 
addOnloadHook$(function () {
if(document.forms.editform) {
addLink('p-cactions', 'javascript:formatunits()', 'units', 'ca-unitfixer', 'Fixes some unit formatting', '', '');