您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Greasy Fork is available in English.
A library for unit conversions.
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.greasyfork.icu/scripts/519002/1492045/Conversion%20Utility%20Library.js
Here’s the corrected markdown after ensuring proper formatting and content flow:
To always have the latest version use:
// @require https://update.greasyfork.icu/scripts/519002/Units%20Converter.js
This library provides a simple framework to convert units of measurement. It supports various unit types (e.g., length, weight, volume, temperature) and handles conversions with single or compound values.
"150 pounds" → Outputs: "68.03 kg"
"10x20 inches" → Outputs: "25.40 x 50.80 cm"
"5^3" → Outputs: "125 power"
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); //https://regex101.com/r/ObpIn5/9 Davidebyzero
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
3. **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 };
4. **New Unit Detection**
const NewUnit = window.UConv[UnitType]?.unit || UnitType; // Detects target unit
5. **Final Conversion Output**
const ConvertedUnit = ${convertValue(parseFloat(UnitValue), UnitType).toFixed(2)}${SecondUnitValue != 0 ?
x ${convertValue(parseFloat(SecondUnitValue), UnitType).toFixed(2)}: ''}
; // Formats output
6. **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
7. **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**
1. **Input Parsing**: Uses regex to extract unit type and numeric values from text input.
2. **Conversion**: Fetches the appropriate conversion factor or custom function from `UConv`.
3. **Output**: Returns the converted value in the desired format, supporting both compound and exponential cases.
---