diff --git a/src/lib/isBase64.js b/src/lib/isBase64.js index fd876e4c0..67e734e57 100644 --- a/src/lib/isBase64.js +++ b/src/lib/isBase64.js @@ -12,6 +12,7 @@ export default function isBase64(str, options) { if (str === '') return true; + if (str.length % 4 === 1) return false; if (options.padding && str.length % 4 !== 0) return false; let regex; @@ -21,5 +22,5 @@ export default function isBase64(str, options) { regex = options.padding ? base64WithPadding : base64WithoutPadding; } - return (!options.padding || str.length % 4 === 0) && regex.test(str); + return regex.test(str); } diff --git a/test/validators/isBase64.test.js b/test/validators/isBase64.test.js index c0074343a..9bf30c5ae 100644 --- a/test/validators/isBase64.test.js +++ b/test/validators/isBase64.test.js @@ -26,6 +26,9 @@ describe('isBase64', () => { 'HQIDAQAB', ], invalid: [ + 'A', + 'AAAAA', + 'AAAAAAAAA', '12345', 'Vml2YW11cyBmZXJtZtesting123', 'Zg=',