< User:Ohconfucius | test/formatgeneral.js
Browse history interactively ← Previous edit Next edit → Content deleted Content addedInline
Revision as of 16:14, 26 September 2013 view source Ohconfucius (talk | contribs )Autopatrolled , Extended confirmed users , Pending changes reviewers 328,947 edits crores with nbsp← Previous edit
Revision as of 16:23, 27 September 2013 view source Ohconfucius (talk | contribs )Autopatrolled , Extended confirmed users , Pending changes reviewers 328,947 edits downcasing KM/KilometersNext edit →
Line 350:
Line 350:
regex(/(\s)M(ember of )P(arliament\W)/g, '$1m$2p$3');
regex(/(\s)M(ember of )P(arliament\W)/g, '$1m$2p$3');
regex(/(\w\s)M(embers of )P(arliament\W)/g, '$1m$2p$3');
regex(/(\w\s)M(embers of )P(arliament\W)/g, '$1m$2p$3');
regex(/(\d)(?: |\s)?C(entimet(?:er|re))/g, '$1 c$2');
regex(/(\d)(?: |\s)?K(ilomet(?:er|re))/g, '$1 k$2');
regex(/(\d)(?: |\s)?KM\b/g, '$1 km');
// replace space as separator
// replace space as separator
Revision as of 16:23, 27 September 2013
function Ohc_formats() {
var txt=document.editform.wpTextbox1;
//html, superscripted ordinals
regex(/\*_\d{4}#\d{4}_*_\d\d?\|(Jan(?:uary|\.|)|Feb(?:ruary|\.|)|Mar(?:ch|\.|)|Apr(?:il|\.|)|May\.?|Jun(?:e|\.|)|Jul(?:y|\.|)|Aug(?:ust|\.|)|Sep(?:tember|\.|t\.|)|Oct(?:ober|\.|)|Nov(?:ember|\.|)|Dec(?:ember|\.|))( \d\d?)\]\]/g, '$1$2');
// regex(/<br>/gi, '<br/>');
regex(/(\d)(?:<(?:small|sup)>){2}(th|st|nd|rd)(?:<\/(?:small|sup)>){2}/gi, '$1$2');
regex(/(\d)<(?:small|sup)>(th|st|nd|rd)(?:<\/(?:small|sup)>|<(?:small|sup)\/>)/gi, '$1$2');
//rem linking within section headings
regex(/(==?(?:*|))\]+?)\]\]((?:*|)?==)/gi, '$1$2$3');
regex(/(==?(?:*|))\]+?\|(]+?)\]\]((?:*|)?==)/gi, '$1$2$3');
regex(/(==?(?:*|))\]+?\||)(]+?)\]\](*)\]+?\||)(]+?)\]\](?:(*)\]+?\||)(]+?)\]\]|)((?:*|)?==)/gi, '$1$2$3$4$5$6$7');
regex(/(==?)\d{1,2}px(]+?)((?:*|)?==)/gi, '$1$2$3'); //rem artefact after removing file from title
//rem empty parameters
// regex(/\|***=*?*(?=)/g, "");
//rem deprecated parameters
regex(/\|\s*influence\s*=*(?=)/g, ""); //rfc infobox person July 2013
//add correct hyphenation
regex(/\b(|\d{2,3}|half|quarter|two|three|four|five|six|seven|eight|nine|ten) (minute|hour|day|week|month|year|litre|litre|degree|inch|foot|yard|mile|metre|metre|man|page|point|word|dollar|cent|floor|store?y|room)\b/g, "$1-$2");
regex(/\b(two|three|four|five|six|seven|eight|nine|ten) (halves|thirds|quarters|(?:four|fif|six|seven|eigh|nin|ten)ths)\b/g, "$1-$2");
regex(/(\bnon) (?+)/g, "$1-$2");
//improper capitalisation within section headings
regex(/(==*External )(Links)(?=*=)/g, '$1links');
regex(/(==*See )(Also)(?=*=)/g, '$1also');
regex(/(==*)Notable (\w*?)/g, '$1$2');
regex(/(==*Box )O(ffice)(?=*=)/g, '$1o$2');
regex(/(==*+? and )A(wards?|chievements?)(?=*=)/g, '$1a$2');
regex(/(==*+? )C(areer|hampionships|haracters|ompositions)(?=*=)/g, '$1c$2');
regex(/(==*+? )E(ducation)(?=*=)/g, '$1e$2');
// regex(/(==*+? )G(roup)(?=*=)/g, '$1g$2');
regex(/(==*+? )H(istory|onou?rs)(?=*=)/g, '$1h$2');
regex(/(==*+? )L(evel|ife|isting)(?=*=)/g, '$1l$2');
regex(/(==*(?:1st|2nd|3rd|\dth) )M(atch)/g, '$1m$2');
regex(/(==*(?:1st|2nd|3rd|\dth) )F(inal)/g, '$1f$2');
regex(/(==*(?:First|Second|Third|Fourth|(?:st|nd|rd|th)) )P(lace)(?=*==)/g, '$1p$2');
regex(/(==*(?:First|Second|Third|Fourth|(?:st|nd|rd|th)) )Q(uarter)(?=*==)/g, '$1q$2');
regex(/(==*(?:First|Second|Third|Fourth|(?:st|nd|rd|th)) )R(ound)(?=*==)/g, '$1r$2');
regex(/(==*(?:CFL|NL) )C(oaching )(ecords?)(?=*=)/g, '$1c$2r$3');
regex(/(==*+? )R(ankings?|eading|esults?|ecords?|eception|ecognition)(?=*=)/g, '$1r$2');
regex(/(==*+? )C(areer )S(tatistics)(?=*=)/g, '$1c$2s$3');
regex(/(==*+? )S(eason|quad|tyle|tage|tatistics)(?=*=)/g, '$1s$2');
regex(/(==*+? )T(ournaments?)(?=*=)/g, '$1t$2');
regex(/(==*+? )Y(ears)(?=*=)/g, '$1y$2');
regex(/(==*Exhibition )S(chedule)(?=*=)/g, '$1s$2');
regex(/(==*Regular )Season Schedule(?=*=)/g, '$1season schedule');
regex(/(==*Terminated )D(estinations)(?=*=)/g, '$1d$2');
regex(/(==*Twin )T(owns)(?=*=)/g, '$1t$2');
regex(/(==*Twin )(Towns nd ister ities)(?=*=)/g, '$1towns and sister cities');
regex(/(==*Heraldic )(Items)(?=*=)/g, '$1items');
regex(/(==*Campaign )C(redits)(?=*=)/g, '$1c$2');
regex(/(==*Combat )C(hronicle)(?=*=)/g, '$1c$2');
//other improper capitalisation
// regex(/(\d(?:st|nd|rd|th) )C(entur(?:ies|y))(?=*(=|BC|AD|CE))/g, '$1c$2'); //transferring to MOSNUM script
// regex(/(\d(?:st|nd|rd|th) )C(entur(?:ies|y))(?!*(?:Fox|\w*))/g, '$1c$2');
regex(/\b(Bowling |Batting )S(tyle)\b/g, '$1s$2');
regex(/\b(lef|righ)t-Handed Opening B(atsman)\b/gi, '$1t-handed opening b$2');
regex(/\b(lef|righ)t-Handed Top Order B(atsman)\b/gi, '$1t-handed top-order b$2');
regex(/\b(ll)R(ounder)\b/gi, '$1-r$2');
regex(/\b(Wicket)K(eeper)\b/gi, '$1-k$2');
regex(/\b(fast)(medium )B(owler)\b/g, '$1–$2b$3');
regex(/\b(ast |edium )B(owler)\b/g, '$1b$2');
regex(/\b(ast|low)(lef|righ)t-rm B(owler)\b/g, '$1 $2-arm b$3');
regex(/\b(fast)B(owler)\b/g, '$1-b$2');
regex(/\b(eg|ff)(pin )B(owler)\b/g, '$1-s$2b$3');
regex(/\b(st|nd|rd|th) G(rade)\b/g, '$1 g$2');
// regex(/(Official )S(ite)/g, '$1s$2');
// regex(/(+ )O(fficial )W(ebsite\])/g, '$1o$2w$3');
regex(/(\'Further )R(eading)(?=\')/g, '$1r$2');
regex(/(\w )A(nd|t) A(n? \w)/g, '$1a$2 a$3');
regex(/(\w )A(nd|t) (My \w)/g, '$1a$2 $3');
regex(/(\w )A(nd|t) T(he \w)/g, '$1a$2 t$3');
regex(/(\w )By A(n? \w)/g, '$1by a$2');
regex(/(\w )By (My \w)/g, '$1by $2');
regex(/(\w )By T(he \w)/g, '$1by t$2');
regex(/(\w )For A(n? \w)/g, '$1for a$2');
regex(/(\w )For (My \w)/g, '$1for $2');
regex(/(\w )For T(he \w)/g, '$1for t$2');
regex(/(\w )In A(n? \w)/g, '$1in a$2');
regex(/(\w )In (My \w)/g, '$1in $2');
regex(/(\w )In T((?:he|o) \w)/g, '$1in t$2');
regex(/(\w )I(nto \w)/g, '$1i$2');
regex(/(\w )O(f|n|r) A(n? \w)/g, '$1o$2 a$3');
regex(/(\w )O(f|n|r) (My \w)/g, '$1o$2 $3');
regex(/(\w )O(f|n|r) T(he \w)/g, '$1o$2 t$3');
regex(/(\w )To A(n? \w)/g, '$1to a$2');
regex(/(\w )To (My \w)/g, '$1to m$2');
regex(/(\w )To T(he \w)/g, '$1to t$2');
regex(/(\w )With A(n? \w)/g, '$1with a$2');
regex(/(\w )With M(y \w)/g, '$1with M$2');
regex(/(\w )With T(he \w)/g, '$1with t$2');
regex(/(\w )A(t \w)/g, '$1a$2');
regex(/(\w )I(n \w)/g, '$1i$2');
regex(/(\w )O( \w)/g, '$1o$2'); //'Or' - false positive (with heraldric Or); 'On' - name (e.g. Ma On Shan)
regex(/(unners?)U(p\b)/g, '$1-u$2');
regex(/(unner)(?:ps)\b/g, '$1s-up');
regex(/(lay)(ffs?)/g, '$1-o$2');
regex(/(\W+ )(uarter)F(inal)/g, '$1q$2-f$3');
regex(/(uarter)F(inal)/g, '$1-f$2');
regex(/(\W+ )(emi)F(inal)/g, '$1s$2-f$3');
regex(/(emi)F(inal)/g, '$1-f$2');
regex(/(Bring |Turn )t o(n)/g, '$1It O$2'); //reverting proper name - title of song or work
regex(/(Carry )o(n \w*|n film)/g, '$1O$2'); //reverting proper name - 'Carry On' film series
regex(/(Ma )o(n Shan)/g, '$1O$2'); //reverting proper name - 'Ma On Shan'
regex(/(NZ |New Zealand )o(n Air|n Screen)/g, '$1O$2'); //reverting proper name - 'NZ On Air'
regex(/in t(he ir onight)/g, 'In t$1'); //reverting per "In the Air Tonight"
regex(/in t(he Flesh our)/g, 'In t$1'); //reverting per "In the Flesh tour"
regex(/(\W)o(n This Day)/g, '$1O$2'); //reverting per "on This Day"
regex(/(Star Trek )into( Darkness)/g, '$1Into$2'); //reverting proper name - title of work
//remove flagicons from country, birth and death
regex(/((?:birth|death)(?:_?place|)\s*=\s*)\{\{flagu?\|(+)\}\}/gi, '$1$2');
regex(/((?:birth|death)(?:_?place|)\s*=\s*)\{\{flag(?:country|icon|)\|(+)\}\}/gi, '$1');
regex(/((?:country(?:_represented)?|nationality|residence)\s*=\s*)\{\{flagu?\|(+)\}\}/gi, '$1$2');
regex(/((?:country(?:_represented)?|nationality|residence)\s*=\s*)\{\{flag(?:country|icon|)\|(+)\}\}/gi, '$1');
//remove scroll bar for reflists
regex(/(References ?={1,4})*<div class=*>(*?)<\/div>/g, '$1$2');
regex(/((?:Notes ?|References ?)={2,4}\s?)*(?:\{\{eflist\}\}|<eferences ?\/>)/g, '$1{{reflist|colwidth=30em}}');
//rem redundant spaces underlining and punctuation
regex(/()(\[?\w+)/gi, '$1\"$2');
regex(/(\w+\]?\.?)(\W)/gi, '$1\"$2');
regex(/()(\[?\w+)/gi, '$1\'$2');
regex(/(\w+\]?\.?)(\W)/g, '$1\'$2'); // replace various single quotes and prime symbol with straight apostrophe
regex(/(\)>] ) +()/gi, '$1$2'); //rem multiple spaces except when preceded by full stop
regex(/(^\.U\.)+((?:S|K)\.)/gi, '$1$2'); //U. S. and U. K. to U.S. and U.K.
regex(/(<\/?ref(?: name=*?|)>)*(<ref)/gi, '$1$2'); // remove punctuation between ref tags
regex(/{1,3}(<\/?ref(?:>| >| n))/g, '$1'); // remove spaces preceding ref tags and templates
regex(/+(\n|\r)/g, '$1'); //removes multiple spaces preceding line break
regex(/(\d), (\d{3}\b)+/g, '$1, $2'); //removes nbsp preceding year
regex(/(\d)(?: | )%/g, '$1%'); //removes nbsp preceding '%'
regex(/( )(–|–)/g, '$1$2'); //Palliative for dashes script insertion of space after nbsp
regex(/\b(US|UK|A(?:US|)|C(?:AN|)|NZ|HK) ()(\d)/g, '$1$2$3');
regex(/() (\d)/g, '$1$2');
regex(/(\{\{(?:INR|Indian Rupee)\}\}|Rs\.?)(\d+)/g, '$1 $2');
regex(/\{\{AUD\}\} ?(\d+)/g, 'A\$$1');
//rem bolding from linked AND bolded terms
// regex(/'''(\]+?\||)(]+?\]\]?)'''/g, '$1$2$3');
//rem 'external' wiktionary links
regex(/\*(\w]*)\]/g, '$1');
//rem linked copyright symbol
regex(/(\\] |©)/g, '');
//rem leading and lagging spaces within wikilinks
regex(/(\+(\|]*?)*(\]\])/g, '$1$2$3');
regex(/(\*(\|]*?)+(\]\])/g, '$1$2$3');
regex(/(\\|]*?)+(]*?\]\])/g, '$1$2');
regex(/(\\|]*?)+\|*(]*?\]\])/g, '$1|$2');
regex(/(\\|]*?)*\|+(]*?\]\])/g, '$1|$2');
//symbol for 'times' and dashes
// regex(/×/gi, '×');
// regex(/(+)x(+(?:\.+|)\s)/gi, '$1 × $2'); //disabling - never ending false positives
regex(/(\d) x (\d )/gi, '$1 × $2');
regex(/\s(A|B?|C|D|E|F?|G|H|I?|Kr?|L|M|N?|Os?|P?|R|S?|T?|U|V|W|Xe|Yb?|Z)-(?=\1)/g, ' $1–'); //signifying chemical bonds and dash-linking of repeated names
regex(/\s(A|B?|C|D|E|F?|G|H|I?|Kr?|L|M|N?|Os?|P?|R|S?|T?|U|V|W|Xe|Yb?|Z)-(A|B?|C|D|E|F?|G|H|I?|Kr?|L|M|N?|Os?|P?|R|S?|T?|U|V|W|Xe|Yb?|Z)\s/g, ' $1–$2 '); //signifying chemical bonds abbrev
// regex(/( *)--( *)/gi, '$1–$2'); //disabling - causes false positives with urls and some images
regex(/—/gi, '—');
regex(/() — (?=)/gi, '$1 – '); // tweak to avoid replacing emdashes in strings that are in non-roman unicode characters
regex(/(\D7\d7)–(\d(?:00|)\D)/gi, '$1-$2'); //airplane model numbers taking hyphen
//inserting a white space between wikilinks to avoid errors upon unlinking
regex(/(\]\]?)(\[\[)(?!file|image)/gi, '$1 $2');
//hash fixes
regex(/( )#(\d{1,3}?\s)/g, '$1No. $2');
//full stop and nbsp fixes
//protection for strings within wikilinks
regex(/(\]*)\d\.\d?\d| \d{1,3}| \d{1,3},\d{3})(*(?:)]*?])/gi, '$1♭$2');
regex(/(\]*)(?:\d?\d\d?\d| \d?\d))(*(?:\.m\.|m)]*?])/gi, '$1♭$2');
//degrees
regex(/(Ph)(?:\.\s?|\s)(D)\.?/g, '$1$2');
regex(/(B|M)(?:\.\s?|\s)(Arch|Comm|Ed|Eng|Sc|Tech)\.?(?=\W)/g, '$1$2');
//times of day, time ranges
// regex(/((?:\d?\d\d?\d| \d?\d) )(?:\.m\.)(?=)/gi, '$1m');
// regex(/(\d?\d\d?\d| \d?\d)(?:*| )(?:a\.m\.|am)(?:*| )(?:*| )(\d?\d\d?\d|\d?\d)(?:*| )(?:p\.m\.|pm)(?=)/gi, '$1 am – $2 pm');
// regex(/(\d?\d\d?\d| \d?\d)(?:*| )(?:p\.m\.|pm)(?:*| )(?:*| )(\d?\d\d?\d|\d?\d)(?:*| )(?:a\.m\.|am)(?=)/gi, '$1 pm – $2 am');
// regex(/(\d?\d\d?\d| \d?\d)(?:*| )(?:a\.m\.|am)(?:*| )(?:*| )(\d?\d\d?\d|\d?\d)(?:*| )(?:a\.m\.|am)(?=)/gi, '$1 am – $2 am');
// regex(/(\d?\d\d?\d| \d?\d)(?:*| )(?:p\.m\.|pm)(?:*| )(?:*| )(\d?\d\d?\d|\d?\d)(?:*| )(?:p\.m\.|pm)(?=)/gi, '$1 pm – $2 pm');
// regex(/(\d?\d\d?\d| \d?\d)(?:*| )(?:a\.m\.|am)(?:*| )(?:*| )(noon|midnight)(?=)/gi, '$1 am – $2');
// regex(/(\d?\d\d?\d| \d?\d)(?:*| )(?:p\.m\.|pm)(?:*| )(?:*| )(noon|midnight)(?=)/gi, '$1 pm – $2');
// regex(/\b(\d?\d\d?\d| \d?\d)(?:*| )(?:a\.m\.|am)(?=)/gi, '$1 am');
// regex(/\b(\d?\d\d?\d| \d?\d)(?:*| )(?:p\.m\.|pm)(?=)/gi, '$1 pm');
regex(/(\d\.\d?\d| \d{1,3}| \d{1,3},\d{3})*(?:kw)\b/gi, '$1 kW');
regex(/(\d\.\d?\d| \d{1,3}| \d{1,3},\d{3})*(?:khz)\b/gi, '$1 kHz');
regex(/(\d\.\d?\d| \d{1,3}| \d{1,3},\d{3})*(?:mz)\b/gi, '$1 MHz');
regex(/(\d\.\d?\d| \d{1,3}| \d{1,3},\d{3})*(?:gz)\b/gi, '$1 GHz');
regex(/(\d\.\d?\d| \d{1,3}| \d{1,3},\d{3})*(?:kph|kphr|kmh|kmhr|kmph|kmphr|km\/hr)\b/gi, '$1 km/h');
regex(/(\d\.\d?\d| \d{1,3}| \d{1,3},\d{3})*(?:m\.p\.h\.)\b/gi, '$1 mph');
regex(/(\d\.\d?\d| \d{1,3}| \d{1,3},\d{3})*(gm|kg|km)s?\b/g, '$1 $2');
regex(/(\d\.\d?\d| \d{1,3}| \d{1,3},\d{3})*KMs?\b/g, '$1 km');
regex(/(\d\.\d?\d| \d{1,3}| \d{1,3},\d{3})*KGs?\b/g, '$1 kg');
regex(/(\d\.\d?\d| \d{1,3}| \d{1,3},\d{3})*(?:K(g|m))s?\b/g, '$1 k$2');
regex(/(\d\.\d?\d| \d{1,3}| \d{1,3},\d{3})*cms?/gi, '$1 cm');
// regex(/(\d{1,3})\s(m|b|tr)illion(\b)/g, '$1 $2illion$3');
//turn letter 'x' into symbol '×'
regex(/(\d)\sx\s(\d{1,3})\sin\s\(/gi, '$1 × $2 in (');
regex(/(\d)\sx\s(\d{1,3})\sinch\s/gi, '$1 × $2 inch ');
// Convert degree symbols into ° symbol, ensure preceding space
regex(/°/g, '°');
// regex(/º/g, '°');
// Celsius spelling errors
regex(/(?:celsius|celcius|centigrade)/gi, 'Celsius');
//Fix common naming error (be careful with this one)
// regex(/centigrade/gi, 'Celsius');
//Celsius or Fahrenheit
regex(/(\d) (?:|deg|degree|degrees) (\W)/g, '$1 °$2');
regex(/(\d)(?:|deg|degree|degrees) (\W)/g, '$1 °$2');
regex(/(\d) (?:|deg|degree|degrees)(\W)/g, '$1 °$2');
regex(/(\d)(?:\s|)(?:|deg|degree|degrees)(?:\s|)(\W)/g, '$1 °$2');
regex(/(\d)(?:\s| )?(?=\C\]\])/gi, '$1 $2');
regex(/(\d)(?:\s| )?(?=\F\]\])/gi, '$1 $2');
regex(/(\s)(-?\d*)(?:\s|-| |)F(?\s)/g, '$1{{convert|$2|°F|°C|abbr=on}}$3');
regex(/(\s)(-?\d*)(?:\s|-| |)(?:deg|degree|degrees)(?:\s|-| |)Fahrenheit(?\s)/gi, '$1{{convert|$2|°F|°C}}$3');
// Convert &sup to superscript
// regex(/(m)(?:²|²);/g, '$1<sup>2</sup>');
// regex(/(m)(?:³|³);/g, '$1<sup>3</sup>');
//remove commas from numerical values in convert template
regex(/(\{convert\|\d+),(\d)/g, '$1$2');
regex(/(\{convert\|\d+),(\d)/g, '$1$2');
regex(/(\{convert\|\d+),(\d)/g, '$1$2');
regex(/(\{convert\|\d+),(\d)/g, '$1$2');
regex(/(\{convert\|\d+),(\d)/g, '$1$2');
//remove leading zeros from convert template
regex(/(\{\{convert\s*\|)\s*0+(?=)/g, '$1$2');
///per WP:COMMONALITY
regex(/()reshman (year)/g, '$1irst $2');
regex(/()ophomore (album|year)/g, '$1econd $2');
//remove Crores and Lakhs in templates converting to USD
regex(/\{\{INR Convert*\|*/gi, '{{INRConvert|'); //removing spaces (redirects to shortcut)
regex(/(\{INRConvert\|)(-?\d+)0000*\|l(\|\d|)(?:\|nolink=yes|)(\}\})/g, '$1$2|b$3$4');
regex(/(\{INRConvert\|)(-?\d+)0*\|l(\|\d|)(?:\|nolink=yes|)(\}\})/g, '$1$2|m$3$4');
regex(/(\{INRConvert\|)(-?\d+)(\d)*\|l(\|\d|)(?:\|nolink=yes|)(\}\})/g, '$1$2.$3|m$4$5');
regex(/(\{INRConvert\|)(-?\d+)*\|l(\|\d|)(?:\|nolink=yes|)(\}\})/g, '$1$200000$3$4');
regex(/(\{INRConvert\|)(-?\d+)\.(\d)*\|l(\|\d|)(?:\|nolink=yes|)(\}\})/g, '$1$2$30000$4$5');
regex(/(\{INRConvert\|)(-?\d+)\.(\d)(\d)*\|l(\|\d|)(?:\|nolink=yes|)(\}\})/g, '$1$2$3$4000$5$6');
regex(/(\{INRConvert\|)(-?\d+)(\d)*\|l(\|\d|)(?:\|nolink=yes|)(\}\})/g, '$1$2.$3|m$4$5');
regex(/(\{INRConvert\|)(-?\d+)\.(\d)*\|c(\|\d|)(?:\|nolink=yes|)(\}\})/g, '$1$2$3|m$4$5');
regex(/(\{INRConvert\|)(-?\d+)\.(\d)(\d+)*\|c(\|\d|)(?:\|nolink=yes|)(\}\})/g, '$1$2$3.$4|m$5$6');
regex(/(\{INRConvert\|)(-?\d+)00*\|c(\|\d|)(?:\|nolink=yes|)(\}\})/g, '$1$2|b$3$4');
regex(/(\{INRConvert\|)(-?\d+)(\d)0*\|c(\|\d|)(?:\|nolink=yes|)(\}\})/g, '$1$2.$3|b$4$5');
regex(/(\{INRConvert\|)(-?\d+)(\d\d)*\|c(\|\d|)(?:\|nolink=yes|)(\}\})/g, '$1$2.$3|b$4$5');
regex(/(\{INRConvert\|)(-?\d+)*\|c(\|\d|)(?:\|nolink=yes|)(\}\})/g, '$1$20|m$3$4');
//Currency notation placements
regex(/\s(\$(?:\d+\.\d\d?|\d{1,3}|\d{1,3},\d{3}))((?:\s| )(?:m|b|tr)illion|)*(?:US(?:|\s?dollars?))\b/gi, ' US$1$2');
//Remove surprise or 'Easter egg' diversions linking unit name to orders of magnitude articles
regex(/\?\d{1,2}\s?..?\|(]{1,50})\]\]/gi, '$1');
regex(/\+\)\|(]{1,50})\]\]/gi, '$1');
regex(/(\d)♭(\w| )/g, '$1$2');
//remove useless comments
regex(/<!-- Metadata: see \\]\. -->/g, '');
//Deleted image cleanup
regex(/<!-- Deleted image removed:*? -->\n*/g, '');
// setoptions(minor='true'); //removed ",watch='false'" in response to user notification 13 Nov. 2010
// setreason('remove bold formatting', 'append');
}
/** ------------------------------------------------------------------------ **/
/// PROTECTION BY STRING SUBSTITUTION
var linkmap=;
function ohc_downcase_CEO()
{
// protects categories, templates, link pipings, quotes, etc
// the sensitive part is stored and replaced with a unique identifier,
// which is later replaced with the stored part.
var protect_function = function(s, begin, replace, end) {
linkmap.push(replace);
return begin + "⍌"+(linkmap.length-1)+"⍍" + end;
};
regex(/(<(?:imagemap)>)(*)(<\/(?:imagemap)>)/gi, protect_function);
regex(/(\{Wikisource\|)(*)(\})/gi, protect_function);
regex(/((?:Category|File|Image):)(]*)(])/gi, protect_function);
regex(/(\|\s*edition\s*=)(]*)(])/gi, protect_function);
regex(/(\|\s*\w*\s*=\s*)(\d(?:st|nd|rd|th)]*)(])/gi, protect_function);
regex(/(\D)(\d(?:st|nd|rd|th)(?: (?:to |and )(?:the |)\d{1,2}(?:st|nd|rd|th)|) (?:centur|ed|grade|millenni|parallel|round))(.)/gi, protect_function); //protecting lower case terms only; code does not expand where ordinal num is followed by a block cap
regex(/(\{(?:See ?also|Main))(\|*)(\})/gi, protect_function);
regex(/((?:cover|file(?:name|)|image\d?|image_skyline|imagelocation\d?|imagename|img|pic|map|title|quote)\s*=)(*)()/gi, protect_function);
regex(/(\]*)(\])/gi, protect_function);
regex(/(\]*)(\|)/gi, protect_function);
regex(/(\{\{\w*)(]*)(\}\})/gi, protect_function);
regex(/(<ref name=)(*)(>)/gi, protect_function);
regex(/(\{Infobox)( non Test)( cricket)/gi, protect_function);
regex(/(.)((?:Chairman's|President'?s) (?:XI|Cup))(.)/g, protect_function);
regex(/(.)(100\scrore club)(.)/gi, protect_function);
regex(/(.)(Conference of Presidents)(.)/g, protect_function);
regex(/C(hief )E(xecutive )O(fficer\W)/g, 'c$1e$2o$3');
regex(/C(hief )E(xecutive\W)/g, 'c$1e$2');
regex(/C(hief )F(inancial )O(fficer\W)/g, 'c$1f$2o$3');
regex(/C(hief )O(perating )O(fficer\W)/g, 'c$1o$2o$3');
regex(/C(hief )I(nformation )O(fficer\W)/g, 'c$1i$2o$3');
regex(/C(hief )M(arketing )O(fficer\W)/g, 'c$1m$2o$3');
regex(/M(anaging )D(irector\W)/g, 'm$1d$2');
regex(/G(eneral )M(anager\W)(?!of)/g, 'g$1m$2');
regex(/B(oard (?:of |))D(irectors?\W)/g, 'b$1d$2');
regex(/B(oard )M(embers?\W)/g, 'b$1m$2');
regex(/C(ommittee )M(embers?\W)/g, 'c$1m$2');
regex(/I(ndependent )D(irectors?\W)/g, 'i$1d$2');
regex(/I(ndependent )N(on)(xecutive )D(irectors?\W)/g, 'I$1n$2e$3d$4');
regex(/N(on)(xecutive )D(irectors?\W)/g, 'n$1e$2d$3');
regex(/C(hair(?:man|) of the )B(oard\W)/g, 'c$1b$2');
regex(/(\w\s)V(ice)C(hair(?:man|)\W)(?!of)/g, '$1v$2-c$3');
regex(/(\w\s)C(hairman\W)(?!of)/g, '$1c$2');
regex(/C(ompany )S(ecretary\W)(?!of)/g, 'c$1s$2');
regex(/G(eneral )S(ecretary\W)(?!of)/g, 'g$1s$2');
// regex(/(\b\w*\.?\s)V(ice)P(resident\W|rincipal)(?!of)/g, '$1v$2-p$3');
regex(/(\w\s+)P(residents)/g, '$1p$2');
// regex(/(\b\w*\.?\s)P(resident\W)(?!of)/g, '$1p$2');
// regex(/(\w\s)D(eputy) P(rime)M(inister\W)(?!of)/g, '$1d$2 p$3 m$4');
regex(/(\s)M(ember of )P(arliament\W)/g, '$1m$2p$3');
regex(/(\w\s)M(embers of )P(arliament\W)/g, '$1m$2p$3');
regex(/(\d)(?: |\s)?C(entimet(?:er|re))/g, '$1 c$2');
regex(/(\d)(?: |\s)?K(ilomet(?:er|re))/g, '$1 k$2');
regex(/(\d)(?: |\s)?KM\b/g, '$1 km');
// replace space as separator
regex(/(\W)(\d+) (\d{3}) (\d{3}) (\d{3}) (\d{3})(?=\W)/g, '$1$2,$3,$4,$5,$6');
regex(/(\W)(\d+) (\d{3}) (\d{3}) (\d{3})(?=\W)/g, '$1$2,$3,$4,$5');
regex(/(\W)(\d+) (\d{3}) (\d{3})(?=\W)/g, '$1$2,$3,$4');
regex(/(\W)(\d{3}) (\d{3})(?=\W)/g, '$1$2,$3');
// replace comma as decimal separator, or full stop as thousands separator
regex(/()*(\d+).(\d\d\d).(\d\d\d)(?=\W)/g, '$1$2,$3,$4');
regex(/()(\d+),(\d\d?)(?=\W)/g, '$1$2.$3');
regex(/(\W)(\d+),(\d\d?)*(?=%)/g, '$1$2.$3');
//remove Crores and Lakhs not in templates
regex(/(\d+)?(?:lakh|\\])(?:crores?|\\])/g, '$1 trillion (])');
regex(/(?:(\d+),|)(\d+)0,000(?: |\s)?(?:acs?|akhs?|\akhs?(?:\||\|acs?|\|akhs|)\]\])(?=)/g, '$1$2 billion');
regex(/(?:(\d+),|)(\d+)\.(\d)(?: |\s)?(?:acs?|akhs?|\akhs?(?:\||\|acs?|\|akhs|)\]\])(?=)/g, '$1$2$30,000');
regex(/(?:(\d+),|)(\d+)\.(\d)(\d)(?: |\s)?(?:acs?|akhs?|\akhs?(?:\||\|acs?|\|akhs|)\]\])(?=)/g, '$1$2$3$4,000');
regex(/(?:(\d+),|)(\d+)0(?: |\s)?(?:acs?|akhs?|\akhs?(?:\||\|acs?|\|akhs|)\]\])(?=)/g, '$1$2 million');
regex(/(?:(\d+),|)(\d+)(\d+)(?: |\s)?(?:acs?|akhs?|\akhs?(?:\||\|acs?|\|akhs|)\]\])(?=)/g, '$1$2.$3 million');
regex(/(?:(\d+),|)(\d+)(?: |\s)?(?:acs?|akhs?|\akhs?(?:\||\|acs?|\|akhs|)\]\])(?=)/g, '$1$200,000');
regex(/(?:(\d+),|)(\d+)\.(\d)(?: |\s)?(?:rs?|rores?|\rores?(?:\|rs|\|rores|)\]\])(?=)/g, '$1$2$3 million');
regex(/(?:(\d+),|)(\d+)\.(\d)(\d+)(?: |\s)?(?:rs?|rores?|\rores?(?:\|rs|\|rores|)\]\])(?=)/g, '$1$2$3.$4 million');
regex(/(?:(\d+),|)(\d+)00(?: |\s)?(?:rs?|rores?|\rores?(?:\|rs|\|rores|)\]\])(?=)/g, '$1$2 billion');
regex(/(?:(\d+),|)(\d+)(\d\d)(?: |\s)?(?:rs?|rores?|\rores?(?:\|rs|\|rores|)\]\])(?=)/g, '$1$2.$3 billion');
regex(/(?:(\d+),|)(\d+)(?: |\s)?(?:rs?|rores?|\rores?(?:\|rs|\|rores|)\]\])(?=)/g, '$1$20 million');
// Indian commas
regex(/(\W)(\d{1,3}),(\d\d),(\d\d),(\d\d),(\d\d),(\d\d\d)(?=\D)/g, '$1{{formatnum:$2$3$4$5$6$7}}');
regex(/(\W)(\d{1,3}),(\d\d),(\d\d),(\d\d),(\d\d\d)(?=\D)/g, '$1{{formatnum:$2$3$4$5$6}}');
regex(/(\W)(\d{1,3}),(\d\d),(\d\d),(\d\d\d)(?=\D)/g, '$1{{formatnum:$2$3$4$5}}');
regex(/(\W)(\d{1,3}),(\d\d),(\d\d\d)(?=\D)/g, '$1{{formatnum:$2$3$4}}');
regex(/(\{INR)\}\}*\{\{formatnum:(\d+\}\})/g, '$1Convert|$2');
// regex(/(\{\{(?:INR|Indian Rupee)\}\}|Rs\.?) (\d+)/g, '$1$2');
//removes protection put in place by function ohc_protect_fmt (all cats, templates etc.)
regex(/⍌(+)⍍/g, function(x, n) {
var res = linkmap;
res = res.replace(/⍌(+)⍍/g, function(x, n) {
var res = linkmap;
res = res.replace(/⍌(+)⍍/g, function(x, n) {
var res = linkmap;
res = res.replace(/⍌(+)⍍/g, function(x, n) {
return linkmap;
});
return res;
});
return res;
});
return res;
});
}
function make_dates_bold(){
//**********************************************************************************************
// This script was originally written by Lightmouse to make dates bold - for timelines, etc.
// For use mainly with timelines, it makes dates after bullet points into bold type
var txt=document.editform.wpTextbox1;
//process date ranges containing a hyphen '* month dd - month dd:'
regex(/\*\s?((?:January|February|March|April|May|June|July|August|September|October|November|December) \d\d?\s?\s?(?:January|February|March|April|May|June|July|August|September|October|November|December) \d\d?)\s?:\s?/gi, '* \'\'\'$1:\'\'\' ');
//process date ranges containing a hyphen '* month dd dd:'
regex(/\*\s?((?:January|February|March|April|May|June|July|August|September|October|November|December) \d\d?\s?\s?\d\d?)\s?:\s?/gi, '* \'\'\'$1:\'\'\' ');
//protect date ranges containing a hyphen
regex(/\*\s?((?:January|February|March|April|May|June|July|August|September|October|November|December) \d\d?\s?)(\s?(?:January|February|March|April|May|June|July|August|September|October|November|December) \d\d?)\s?:\s?/gi, '$1xx$2');
regex(/\*\s?((?:January|February|March|April|May|June|July|August|September|October|November|December) \d\d?\s?)(\s?\d\d?)\s?:\s?/gi, '$1xx$2');
//process dates containing a hyphen
regex(/\*\s?((?:January|February|March|April|May|June|July|August|September|October|November|December) \d\d?\s?)\s?/gi, '* \'\'\'$1:\'\'\' ');
//unprotect date ranges containing a hyphen
regex(/\*\s?((?:January|February|March|April|May|June|July|August|September|October|November|December) \d\d?\s?)xx(\s?(?:January|February|March|April|May|June|July|August|September|October|November|December) \d\d?)\s?:\s?/gi, '$1–$2');
regex(/\*\s?((?:January|February|March|April|May|June|July|August|September|October|November|December) \d\d?\s?)xx(\s?\d\d?)\s?:\s?/gi, '$1–$2');
//process other dates
regex(/\*\s?((?:January|February|March|April|May|June|July|August|September|October|November|December)\s\d\d?(?:,\s?\d{1,4})?\s?)\s/gi, '* \'\'\'$1\'\'\' ');
regex(/\*\s?(\d\d?\s(?:January|February|March|April|May|June|July|August|September|October|November|December)(?:\s\d{1,4})?\s?)\s/gi, '* \'\'\'$1\'\'\' ');
// edit_summary();
}
function ohc_change_type(){
//update syntax of 'File'
// regex(/\mage):/g, '[[File:');
//add {{url}} template to infobox parameter
regex(/((?:homepage)*=)*(http:\/\/]+)(?=)/gi, '$1{{url|$2}}');
}
function Ohc_football_retrain(){
//update file names that are supposed to include dashes instead of hyphens
regex(/(\\d{2} (?:\. |))Fußball-((?:Bundesl|L)iga)/gi, '$1$2');
regex(/(\(\d{2} in *football\|)/gi, '$1–$2');
regex(/(\(\d{2} * season\|)/gi, '$1–$2');
regex(/(\(\d{2} (?:Asian Club Championship|AFC Champions League|(?:(?:2\. |)Bundesl|3\. L)iga|Ekstraklasa|Eredivisie|Serie \d?|UEFA (?:Cup Winners' |)Cup|UEFA (?:Champions|Europa) League|Danish (?:Superliga|(?:st|nd|rd) Division)|French football Division \d|Czechoslovak First League|Gambrinus liga|Czech Cup|Coppa Italia|* (?:Premier|Super) League|KNVB Cup|Liga (?:Arzit|Leumit))\|)/gi, '$1–$2');
//plus retraining
regex(/(\\d?|UEFA (?:Cup Winners' |)Cup|UEFA (?:Champions|Europa) League|Danish (?:Superliga|(?:st|nd|rd) Division)|French football Division \d|Czechoslovak First League|Gambrinus liga|Czech Cup|Coppa Italia|* (?:Premier|Super) League|KNVB Cup|Liga (?:Arzit|Leumit)) (\d{4})(\d{2})(#|\|)/gi, '$1$3–$4 $2$5');
regex(/(\{\{Fb cl\d?*\|s=*(?:19|20)\d\d)(\d\d*\|)/gi, '$1-$2'); //undo dashes.js change for non-recognising template
}
function Ohc_final_cleanup(){
//remove redundant piping
regex(/\\|]*)\|\1( ]*|)(\]\])/gi, '[[$1$3$2');
}
function Ohc_eject_zh(){
//Chinese language template - eject language clutter from lead
regex(/(\|2?=)\{\{linktext(?:\|())(?:\|())(?:\|())(?:\|()|)(?:\|()|)\}\}/g, '$1$2$3$4$5$6');
regex(/(,? )\(\{\{zh(\|+)\}\}(?: )/gi, '$1{{Chinese$2}}(');
regex(/(,? )\(\{\{zh(\|+)\}\}(?: | ?)/gi, '$1{{Chinese$2}}(');
regex(/\(\)/g, ' ');
regex(/\(\) /g, ' ');
}
/** ------------------------------------------------------------------------ **/
/// PROTECTION BY STRING SUBSTITUTION
var linkmap=;
function ohc_protect_fmt()
{
// protects categories, templates, link pipings, quotes, etc
// the sensitive part is stored and replaced with a unique identifier,
// which is later replaced with the stored part.
var protect_function = function(s, begin, replace, end) {
linkmap.push(replace);
return begin + "⍌"+(linkmap.length-1)+"⍍" + end;
};
regex(/(\{Wikisource\|)(*)(\})/gi, protect_function);
regex(/((?:Category|File|Image):)(]*)(])/gi, protect_function);
regex(/((?:{2,3}):)(]*)(])/gi, protect_function);
regex(/(\{(?:See ?also|Main))(\|*)(\})/gi, protect_function);
regex(/((?:cover|file(?:name|)|image\d?|image_skyline|imagelocation\d?|imagename|img|pic|map)\s*=)(*)()/gi, protect_function);
regex(/(\]*)(\|)/gi, protect_function);
regex(/(\{\{\w*)(]*)(\}\})/gi, protect_function);
regex(/(<ref name=)(*)(>)/gi, protect_function);
regex(/(\{Infobox)( non Test)( cricket)/gi, protect_function);
regex(/(.)(On a Friday)(.)/g, protect_function);
regex(/(.)(Octopussy and the living daylights)(.)/gi, protect_function);
regex(/(.)(\'?Carry On *)(.)/g, protect_function);
regex(/(.)(10 metre (?:air|running) \w*)(.)/g, protect_function);
}
function ohc_unprotect_fmt()
{
//removes protection put in place by function ohc_protect_fmt (all cats, templates etc.)
regex(/⍌(+)⍍/g, function(x, n) {
var res = linkmap;
res = res.replace(/⍌(+)⍍/g, function(x, n) {
var res = linkmap;
res = res.replace(/⍌(+)⍍/g, function(x, n) {
var res = linkmap;
res = res.replace(/⍌(+)⍍/g, function(x, n) {
return linkmap;
});
return res;
});
return res;
});
return res;
});
}
/** ------------------------------------------------------------------------ **/