UNPKG

@daysnap/utils

Version:
24 lines (22 loc) 632 B
// src/parseDecimalString.ts function parseDecimalString(val, options = {}) { const { precision = 0, allowNegativeNumber = true } = options; const reg = new RegExp( `^${allowNegativeNumber ? "-?" : ""}(0|[1-9]\\d*)?${+precision === 0 ? "" : `(\\.?\\d{0,${precision}})?`}`, "g" ); val = val.match(reg)?.[0] ?? ""; if (val.startsWith("-00")) { val = `-0`; } else if (val.startsWith("-.")) { val = "-"; } else if (val.startsWith(".")) { val = ""; } else if (val.startsWith("0") && !val.startsWith("0.") && val.length > 1) { val = `${+val}`; } return val; } export { parseDecimalString };