diff --git a/src/lib/isFloat.js b/src/lib/isFloat.js index 84bdc782c..d877ae15b 100644 --- a/src/lib/isFloat.js +++ b/src/lib/isFloat.js @@ -10,6 +10,9 @@ export default function isFloat(str, options) { return false; } const value = parseFloat(str.replace(',', '.')); + if (Number.isNaN(value)) { + return false; + } return float.test(str) && (!options.hasOwnProperty('min') || isNullOrUndefined(options.min) || value >= options.min) && (!options.hasOwnProperty('max') || isNullOrUndefined(options.max) || value <= options.max) && diff --git a/test/validators.test.js b/test/validators.test.js index cdde41a07..873f9d1db 100644 --- a/test/validators.test.js +++ b/test/validators.test.js @@ -4657,6 +4657,11 @@ describe('Validators', () => { 'foo', '20.foo', '2020-01-06T14:31:00.135Z', + 'e5', + 'E5', + '.e3', + 'e-3', + '+e5', ], });