The raw string to parse.
The parsed number, or undefined when the input is blank or not a
finite number.
toFiniteNumber("12.5"); // => 12.5
toFiniteNumber("12abc"); // => undefined
toFiniteNumber(""); // => undefined
export function toFiniteNumber(raw: string): number | undefined {
if (raw.trim() === '') {
return undefined;
}
const value = Number(raw);
return Number.isFinite(value) ? value : undefined;
}
Parse a raw string (typically an input's
value) into a finite number, returningundefinedfor empty or malformed input. UsesNumber()rather thanparseFloat, which would silently accept trailing garbage and turn"12abc"into12. The empty check is explicit becauseNumber("")andNumber(" ")are both0, notNaN.