This script should not be not be installed directly. It is a library for other scripts to include with the meta directive // @require https://update.greasyfork.org/scripts/519002/1492624/Units%20Converter.js
If you like my work, please consider supporting it!
Cryptos https://hacker09.glitch.me/
https://www.patreon.com/hacker09
To always have the latest version use:
// @require https://update.greasyfork.org/scripts/519002/Units%20Converter.js
Units Supported
The script supports 27 units of measurements that are:
- Inches
- Centimeters
- Meters
- Feet
- Kilograms
- Pounds
- Ounces
- Grams
- Fluid ounces
- Kilometers per hour
- Miles per hour
- °C
- °F
- Milliliters
- Liters
- Gallons
- Yards
- Millimeters
- Kilometers
- Miles
- Kilowatts
- Mechanical HorsePower
- Miles per Gallon
- Liters per 100 Kilometers
- Liquid Quarts
- Foot-Pounds
- Newton-Meters
The conversions are:
Conversion |
Example Input |
Example Output |
Inches ⇄ Centimeters |
72in, 72″ |
182.88 cm |
Millimeters ➜ Inches |
50mm |
1.97in |
Meters ⇄ Feet |
6.50 ft |
1.98 m |
Yards ➜ Meters |
239 yd |
218.46 m |
Ounces ⇄ Grams |
1.76 oz |
49.90 g |
Kilometers ⇄ Miles |
60mi |
96.54 km |
Kilometers per hour ⇄ Miles per hour |
62.14mph |
99.98 km/h |
°F ⇄ °C |
39°C |
102.20°F |
Milliliters ⇄ Fluid ounces |
49.98 ml |
1.69 fl |
Liters ⇄ Gallons |
2.06 gal |
7.80 l |
Kilowatts ⇄ Mechanical HorsePower |
700kW |
938.70 mhp |
Miles per Gallon ⇄ Liters per 100 Kilometers |
33.6mpg |
7l/100km |
Liquid Quarts ⇄ Liters |
4 qt |
3.78 l |
Foot-Pounds ⇄ Newton-Meters |
250lb ft |
338.95 N·m |
Unit Conversion Library Documentation
Overview
This library provides a simple framework to convert units of measurement for the script https://greasyfork.org/en/scripts/419825. It supports various unit types (e.g., length, weight, volume, temperature) and handles conversions with single or compound values.
To see the latest const Units
regex and a real usage scenario check https://greasyfork.org/en/scripts/419825.
Features
- Unit Conversion: Converts a numeric value from one unit to another.
- Compound Conversions: Handles cases with two values (e.g., "10x20 inches").
- Exponential Operations: Supports calculations like powers (e.g., "5^3").
- Unit Recognition: Uses a regex pattern to identify units and values from text input.
Usage
Example Input
"150 pounds" → Outputs: "68.03 kg"
"10x20 inches" → Outputs: "25.40 x 50.80 cm"
"5^3" → Outputs: "125 power"
Main Functions
Regex Matching for Units
const UnitType = "150 pounds".match(Units)[3].toLowerCase(); // Extracts the unit type
Value Extraction
const Units = new RegExp(
/^[ \t\xA0]*(-?\d+(?:[., ]\d+)?)(?:[ \t\xA0]*x[ \t\xA0]*(-?\d+(?:[., ]\d+)?))?[ \t\xA0]*
(in|inch|inches|"|”|″|cm|cms|centimeters? \ |m|mt|mts|meters?|ft|kg|lbs?|pounds?|kilograms?|ounces?|
g|ozs?|fl oz|fl oz (us)|fluid ounces?|kphs?|km\/h|kilometers per hours?|mhp|mphs?|meters per hours?|
(?:°\s?|º\s?|)(?:degrees?\s+)?(?:celsius|fahrenheit|[CF])|km\/hs?|ml|milliliters?|l|liters?|litres?|
gal|gallons?|yards?|yd|Millimeter|millimetre|kilometers?|mi|mm|miles?|km|ft|fl|feets?|grams?|kilowatts?|
kws?|brake horsepower|mechanical horsepower|hps?|bhps?|miles per gallons?|mpgs?|liters per 100 kilometers?|
lt?\/100km|liquid quarts?|lqs?|qt|foot-? ?pounds?|ft-?lbs?|lb fts?|newton-? ?meters?|n·?m|\^\d+)
[ \t\xA0]*(?:\(\w+\)[ \t\xA0]*)?$/i
);
const UnitValue = "150 pounds".match(Units)[1].replaceAll(',', '.'); // Extracts numeric value
const SecondUnitValue = "150 pounds".match(Units)[2]?.replaceAll(',', '.') || 0; // Extracts second value if present
Value Conversion
const convertValue = (value, unitType) => {
const { factor, convert } = window.UConv[unitType] || {};
return convert ? convert(value) : value * factor; // Converts value using factor or custom function
};
New Unit Detection
const NewUnit = window.UConv[UnitType]?.unit || UnitType; // Detects target unit
Final Conversion Output
const ConvertedUnit = `${convertValue(parseFloat(UnitValue), UnitType).toFixed(2)}${SecondUnitValue != 0 ? ` x ${convertValue(parseFloat(
SecondUnitValue), UnitType).toFixed(2)}` : ''}`; // Formats output
Special Cases
const ConvertedUnit = "5^3".match(/\^(\d+\.?\d*)/)
? (NewUnit = 'power', Math.pow(parseFloat(UnitValue), parseFloat("5^3".match(/\^(\d+\.?\d*)/)[1])))
: ConvertedUnit; // Handles powers
Display Conversion
ShowConvertion('Units', NewUnit, ConvertedUnit); // Displays result
Adding New Units
To add new units, modify the addConversion
function in the UConv
library:
addConversion(['unit1', 'unit2'], 'targetUnit', conversionFactor, optionalConvertFunction);
Example:
addConversion(['pound', 'lb'], 'kg', 0.453592); // Adds "pound" conversion to kilograms
How It Works
- Input Parsing: Uses regex to extract unit type and numeric values from text input.
- Conversion: Fetches the appropriate conversion factor or custom function from
UConv
.
- Output: Returns the converted value in the desired format, supporting both compound and exponential cases.