User:Ohconfucius/script/tometricunits.js: Difference between revisions

Content deleted Content added
case sensitive
lookaheads avoid need to capture
Line 4:
//imperial conversion fixes
////velocity
regex(/(?<![,\d\(\[])(\d*),?(\d+(?:\.\d+|))(?:&nbsp;|\s|)(mph|miles per hour)\.?(?=[\.,;]?\s+[a-z])/g, '{{convert|$1$2|mph|km\/h}}$4');
regex(/(?<![,\d\(\[])(\d*),?(\d+(?:\.\d+|))(?:&nbsp;|\s|)(mph|miles per hour)(?=\.\s+[A-Z]|\s.\W|\n)/g, '{{convert|$1$2|mph|km\/h}}$4');
regex(/(?<![,\d\(\[])(\d*),?(\d+(?:\.\d+|))(?:&nbsp;|\s|)(ft\/s|f[eo]{2}t per second)\.?(?=[\.,;]?\s+[a-z])/g, '{{convert|$1$2|ft\/s|m\/s}}$4');
regex(/(?<![,\d\(\[])(\d*),?(\d+(?:\.\d+|))(?:&nbsp;|\s|)(ft\/s|f[eo]{2}t per second)(?=\.\s+[A-Z]|\s.\W|\n)/g, '{{convert|$1$2|ft\/s|m\/s}}$4');
 
////ranges
regex(/(?<![,\d\(\[])(\d*),?(\d+(?:\.\d+|))(?:(?:&nbsp;|\s|)(?:pounds|lbs?\.?)|)\s?(to|-)\s?(\d*),?(\d+(?:\.\d+|))(?:&nbsp;|\s|)(?:pounds|lbs?)\.?(?=[\.,;]?\s+[a-z])/g, '{{convert|$1$2|$3|$4$5|lb|kg}}$6');
regex(/(?<![,\d\(\[])(\d*),?(\d+(?:\.\d+|))(?:(?:&nbsp;|\s|)(?:pounds|lbs?\.?)|)\s?(to|-)\s?(\d*),?(\d+(?:\.\d+|))(?:&nbsp;|\s|)(?:pounds|lbs?)(?=\.\s+[A-Z]|\s.\W|\n)/g, '{{convert|$1$2|$3|$4$5|lb|kg}}$6');
regex(/(?<![,\d\(\[])(\d*),?(\d+(?:\.\d+|))(?:(?:&nbsp;|\s|)(?:pounds|lbs?\.?)|)\s?([–—])\s?(\d*),?(\d+(?:\.\d+|))(?:&nbsp;|\s|)(?:pounds|lbs?\.?)/g, '{{convert|$1$2|to|$4$5|lb|kg}}');
 
regex(/(?<![,\d\(\[])(\d{1,2}(?:\.\d+|))(?:(?:&nbsp;|\s|)(?:inches?|in\.?)|)\s?(to|-)\s?(\d{1,2}(?:\.\d+|))(?:&nbsp;|\s|)(?:inches?|in)\.?(?=[\.,;]?\s+[a-z])/g, '{{convert|$1|$2|$3|in|cm}}$4');
regex(/(?<![,\d\(\[])(\d{1,2}(?:\.\d+|))(?:(?:&nbsp;|\s|)(?:inches?|in\.?)|)\s?(to|-)\s?(\d{1,2}(?:\.\d+|))(?:&nbsp;|\s|)(?:inches?|in)(?=\.\s+[A-Z]|\s.\W|\n)/g, '{{convert|$1|$2|$3|in|cm}}$4');
regex(/(?<![,\d\(\[])(\d{1,2}(?:\.\d+|))(?:(?:&nbsp;|\s|)(?:inches?|in\.?)|)\s?([–—])\s?(\d{1,2}(?:\.\d+|))(?:&nbsp;|\s|)(?:inches?|in\.?)/g, '{{convert|$1|$2|$3|$4$5|in|cm}}$6');
 
regex(/(?<![,\d\(\[])(\d*),?(\d+(?:\.\d+|))(?:(?:&nbsp;|\s|)(?:feet|ft\.?)|)\s?(to|-)\s?(\d*),?(\d+(?:\.\d+|))(?:&nbsp;|\s|)(?:feet|ft)\.?(?=[\.,;]?\s+[a-z])/g, '{{convert|$1$2|$3|$4$5|ft|m}}$6');
regex(/(?<![,\d\(\[])(\d*),?(\d+(?:\.\d+|))(?:(?:&nbsp;|\s|)(?:feet|ft\.?)|)\s?(to|-)\s?(\d*),?(\d+(?:\.\d+|))(?:&nbsp;|\s|)(?:feet|ft)(?=\.\s+[A-Z]|\s.\W|\n)/g, '{{convert|$1$2|$3|$4$5|ft|m}}$6');
regex(/(?<![,\d\(\[])(\d*),?(\d+(?:\.\d+|))(?:(?:&nbsp;|\s|)(?:yards|yds?\.?)|)\s?(to|-)\s?(\d*),?(\d+(?:\.\d+|))(?:&nbsp;|\s|)(?:yards|yds?)\.?(?=[\.,;]?\s+[a-z])/g, '{{convert|$1$2|$3|$4$5|yd|m}}$6');
regex(/(?<![,\d\(\[])(\d*),?(\d+(?:\.\d+|))(?:(?:&nbsp;|\s|)(?:yards|yds?\.?)|)\s?(to|-)\s?(\d*),?(\d+(?:\.\d+|))(?:&nbsp;|\s|)(?:yards|yds?)(?=\.\s+[A-Z]|\s.\W|\n)/g, '{{convert|$1$2|$3|$4$5|yd|m}}$6');
regex(/(?<![,\d\(\[])(\d*),?(\d+(?:\.\d+|))(?:(?:&nbsp;|\s|)(?:miles)|)\s?(to|-)\s?(\d*),?(\d+(?:\.\d+|))(?:&nbsp;|\s|)mi(?:les|)\.?(?=[\.,;]?\s+[a-z])/g, '{{convert|$1$2|$3|$4$5|mi|km}}$6');
regex(/(?<![,\d\(\[])(\d*),?(\d+(?:\.\d+|))(?:(?:&nbsp;|\s|)(?:miles)|)\s?(to|-)\s?(\d*),?(\d+(?:\.\d+|))(?:&nbsp;|\s|)miles(?=\.\s+[A-Z]|\s.\W|\n)/g, '{{convert|$1$2|$3|$4$5|mi|km}}$6');
 
////multiple units
regex(/(?<![,\d\(\[])(\d+)(?:&nbsp;|\s|)(feet|ft\.?),?(?:&nbsp;|\s|)([01]?\d)(?:&nbsp;|\s|)in(?:ches|ch|)\.?(?=[\.,;]?\s+[a-z])/g, '{{convert|$1|ft|$3|in}}$4');
regex(/(?<![,\d\(\[])(\d+)(?:&nbsp;|\s|)(feet|ft\.?),?(?:&nbsp;|\s|)([01]?\d)(?:&nbsp;|\s|)in(?:ches|ch|)(?=\.\s+[A-Z]|\s.\W|\n)/g, '{{convert|$1|ft|$3|in}}$4');
regex(/(?<![,\d\(\[])(\d+)(?:&nbsp;|\s|)(pounds?|lbs?\.?),?(?:&nbsp;|\s|)([01]?\d)(?:&nbsp;|\s|)(?:oz|ounces?)\.?(?=[\.,;]?\s+[a-z])/g, '{{convert|$1|lb|$3|oz}}$5');
regex(/(?<![,\d\(\[])(\d+)(?:&nbsp;|\s|)(pounds?|lbs?\.?),?(?:&nbsp;|\s|)([01]?\d)(?:&nbsp;|\s|)(?:oz|ounces?)(?=\.\s+[A-Z]|\s.\W|\n)/g, '{{convert|$1|lb|$3|oz}}$5');
 
 
////simple
regex(/(?<![,\d\(\[])(\d*),?(\d+(?:\.\d+|))(?:&nbsp;|\s|)(?:pounds|lbs?)\.?(?=[\.,;]?\s+[a-z])/g, '{{convert|$1$2|lb|kg}}$3');
regex(/(?<![,\d\(\[])(\d*),?(\d+(?:\.\d+|))(?:&nbsp;|\s|)(?:pounds|lbs?)(?=\.\s+[A-Z]|\s.\W|\n)/g, '{{convert|$1$2|lb|kg}}$3');
 
regex(/(?<![,\d\(\[])(\d{1,2}(?:\.\d+|))(?:&nbsp;|\s|)in\.?(?=[\.,;]?\s+[a-z])/g, '{{convert|$1$2|in|cm}}$3');
regex(/(?<![,\d\(\[])(\d*),?(\d+(?:\.\d+|))(?:&nbsp;|\s|)in(?:ches|ch)(?=[\.,;]?\s+[a-z])/g, '{{convert|$1$2|in|cm}}$3');
regex(/(?<![,\d\(\[])(\d*),?(\d+(?:\.\d+|))(?:&nbsp;|\s|)(?:feet|ft)\.?(?=[\.,;]?\s+[a-z])/g, '{{convert|$1$2|ft|m}}$3');
regex(/(?<![,\d\(\[])(\d*),?(\d+(?:\.\d+|))(?:&nbsp;|\s|)(?:yards?|yds?)\.?(?=[\.,;]?\s+[a-z])/g, '{{convert|$1$2|yd|m}}$3');
regex(/(?<![,\d\(\[])(\d*),?(\d+(?:\.\d+|))(?:&nbsp;|\s|)(mi)(?:les|)\.?(?=[\.,;]?\s+[a-z])/g, '{{convert|$1$2|$3|km}}');
 
Line 48:
 
////adjectival
regex(/(?<![,\d\(\[])(\d*),?(\d+(?:\.\d+|))-(in)ch(?:&nbsp;|\s)(?!\()/g, '{{convert|$1$2|in|cm|adj=on}}$4');
regex(/(?<![,\d\(\[])(\d*),?(\d+(?:\.\d+|))-(foot|ft)(?:&nbsp;|\s)(?!\()/g, '{{convert|$1$2|ft|m|adj=on}}$4');
regex(/(?<![,\d\(\[])(\d*),?(\d+(?:\.\d+|))-(yard|yd)(?:&nbsp;|\s)(?!\()/g, '{{convert|$1$2|yd|m|adj=on}}$4');
regex(/(?<![,\d\(\[])(\d*),?(\d+(?:\.\d+|))-(mi)le(?:&nbsp;|\s)(?!\()/g, '{{convert|$1$2|mi|km|adj=on}}$4');
regex(/(?<![,\d\(\[])(\d*),?(\d+(?:\.\d+|))-(pound|lb)(?:&nbsp;|\s)(?!\()/g, '{{convert|$1$2|lb|kg|adj=on}}$4');
 
////area (shorthand)
regex(/(?<![,\d\(\[])(\d*),?(\d+(?:\.\d+|))(?:&nbsp;|\s|)(?:sq\. ft\.|sq ?ft)(&nbsp;|\s)(?!\()/g, '{{convert|$1$2|sqft|m2}}$43');
regex(/(?<![,\d\(\[])(\d*),?(\d+(?:\.\d+|))(?:&nbsp;|\s|)(?:sq\. yd\.|sq ?yd)(&nbsp;|\s)(?!\()/g, '{{convert|$1$2|sqyd|m2}}$43');
regex(/(?<![,\d\(\[])(\d*),?(\d+(?:\.\d+|))(?:&nbsp;|\s|)(?:sq mi)(&nbsp;|\s)(?!\()/g, '{{convert|$1$2|sqmi|km2}}$43');
//area longhand