Files
buzz-sheet/lib/guides/percent-input.ts
T

17 lines
522 B
TypeScript

const DECIMAL = /^-?(?:\d+\.?\d*|\.\d*)?$/u;
export function isValidPercent(value: string): boolean {
if (!value.trim()) return false;
const number = Number(value);
return Number.isFinite(number) && number >= -9999 && number <= 9999;
}
export function normalizePercentInput(nextValue: string, currentValue = ""): string {
const value = nextValue.trim();
return DECIMAL.test(value) ? value : currentValue;
}
export function finalizePercentInput(value: string): string {
return value === "-" ? "0" : value;
}