17 lines
522 B
TypeScript
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;
|
|
}
|