51 lines
1.6 KiB
JavaScript
51 lines
1.6 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.default = numberfy;
|
|
/**
|
|
* # Get Number from any input
|
|
* @example
|
|
* numberfy("123") // 123
|
|
* numberfy("123.456") // 123
|
|
* numberfy("123.456", 2) // 123.46
|
|
* numberfy("123.456", 0) // 123
|
|
* numberfy("123.456", 3) // 123.456
|
|
*/
|
|
function numberfy(num, decimals) {
|
|
var _a;
|
|
try {
|
|
const numberString = String(num)
|
|
.replace(/[^0-9\.]/g, "")
|
|
.replace(/\.$/, "");
|
|
if (!numberString.match(/./))
|
|
return 0;
|
|
const existingDecimals = numberString.match(/\./)
|
|
? (_a = numberString.split(".").pop()) === null || _a === void 0 ? void 0 : _a.length
|
|
: undefined;
|
|
const numberfiedNum = Number(numberString);
|
|
if (typeof numberfiedNum !== "number")
|
|
return 0;
|
|
if (isNaN(numberfiedNum))
|
|
return 0;
|
|
if (decimals)
|
|
return Number(numberfiedNum.toFixed(decimals));
|
|
if (existingDecimals)
|
|
return Number(numberfiedNum.toFixed(existingDecimals));
|
|
return Math.round(numberfiedNum);
|
|
}
|
|
catch (error) {
|
|
console.log(`Numberfy ERROR: ${error.message}`);
|
|
return 0;
|
|
}
|
|
}
|
|
// OLD FUNCTION
|
|
// try {
|
|
// const numberfiedNum = Number(num);
|
|
// if (typeof numberfiedNum !== "number") return 0;
|
|
// if (isNaN(numberfiedNum)) return 0;
|
|
// if (decimals) return Number(numberfiedNum.toFixed(decimals));
|
|
// return Math.round(numberfiedNum);
|
|
// } catch (/** @type {any} */ error: any) {
|
|
// console.log(`Numberfy ERROR: ${error.message}`);
|
|
// return 0;
|
|
// }
|