From 18b714d0567591ac3e7fb6eaa33d6183bd51ad82 Mon Sep 17 00:00:00 2001 From: Thijs Louisse Date: Wed, 7 Aug 2019 18:26:23 +0200 Subject: [PATCH] fix(input-amount): return undefined for non numbers with spaces --- packages/input-amount/src/parsers.js | 4 ++++ packages/input-amount/test/parsers.test.js | 1 + 2 files changed, 5 insertions(+) diff --git a/packages/input-amount/src/parsers.js b/packages/input-amount/src/parsers.js index c194156a8..516b289fc 100644 --- a/packages/input-amount/src/parsers.js +++ b/packages/input-amount/src/parsers.js @@ -110,6 +110,10 @@ function parseHeuristic(value) { * @param {object} options Locale Options */ export function parseAmount(value, options) { + const containsNumbers = value.match(/\d/g); + if (!containsNumbers) { + return undefined; + } const matchedInput = value.match(/[0-9,.\- ]/g); if (!matchedInput) { return undefined; diff --git a/packages/input-amount/test/parsers.test.js b/packages/input-amount/test/parsers.test.js index d5280b585..f266ce8aa 100644 --- a/packages/input-amount/test/parsers.test.js +++ b/packages/input-amount/test/parsers.test.js @@ -139,6 +139,7 @@ describe('parseAmount()', () => { it('ignores non-number characters and returns undefined', () => { expect(parseAmount('A')).to.equal(undefined); expect(parseAmount('EUR')).to.equal(undefined); + expect(parseAmount('EU R')).to.equal(undefined); }); it('returns undefined when value is empty string', () => {