/** Extracts the first number formatted by ns.format.number() in a string.
* @param {string} s String containing a formatted number
* @returns {number} number */
function parseFormattedNumber(s) {
if (typeof s !== "string") {ns.print("WARN: parseFormattedNumber: invalid type for input " + s); return NaN;}
const [ // Ex.: "Gained $250.000m"
num, // "250.000m"
base, // "250.000"
suffix // "m"
] = s.match(/(-?\d+(?:[\.,]\d{1,5})?)(e\d+|[kmbtqQsSon])?/);
if (!num || !base) {ns.print("WARN: parseFormattedNumber: no valid number found for input " + s); return NaN;}
const numSuffixList = ["", "k", "m", "b", "t", "q", "Q", "s", "S", "o", "n"];
let exp = suffix ?? "";
if (suffix && numSuffixList.includes(suffix)) {
exp = "e" + (numSuffixList.indexOf(suffix) * 3);
}
return parseFloat(base.replace(",",".") + exp);
}
Comments
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎
0 B
|👍
/👎