diff --git a/src/number.ts b/src/number.ts index 0bc353e..edb37d8 100644 --- a/src/number.ts +++ b/src/number.ts @@ -20,7 +20,7 @@ export const processNumber = (value: string, masked = true, opts: MaskOptions): const decimal = parts.find((part) => part.type === 'decimal')?.value ?? '.' const float = prepare(value, group, decimal) - if (float === '' || Number.isNaN(float)) return sign + if (Number.isNaN(parseFloat(float))) return sign // allow zero at the end const floatParts = float.split('.') diff --git a/test/number.test.ts b/test/number.test.ts index 46e772e..2057386 100644 --- a/test/number.test.ts +++ b/test/number.test.ts @@ -166,3 +166,11 @@ test('initial brazilian number', () => { expect(mask.masked('1.23')).toBe('123') expect(mask.masked('1,23')).toBe('1,23') }) + +// https://github.com/beholdr/maska/issues/228 +test('NaN check', () => { + const mask = new Mask({ number: { locale: 'uk', fraction: 2 } }) + + expect(mask.masked('.')).toBe('') + expect(mask.masked(',')).toBe('') +})