diff --git a/package.json b/package.json index a912c032a..28972e774 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "validator", "description": "String validation and sanitization", - "version": "13.6.0", + "version": "13.6.1", "sideEffects": false, "homepage": "https://github.com/validatorjs/validator.js", "files": [ diff --git a/src/lib/isUUID.js b/src/lib/isUUID.js index 61d938ac3..0174ae745 100644 --- a/src/lib/isUUID.js +++ b/src/lib/isUUID.js @@ -7,8 +7,15 @@ const uuid = { all: /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i, }; -export default function isUUID(str, version = 'all') { +function extractUUIDVersion(version) { + const isKnownVersion = Object.keys(uuid).includes(String(version)); + if (isKnownVersion) return version; + return version ? undefined : 'all'; +} + +export default function isUUID(str, version) { assertString(str); - const pattern = uuid[version]; + const uuidVersion = extractUUIDVersion(version); + const pattern = uuid[uuidVersion]; return pattern && pattern.test(str); } diff --git a/test/validators.js b/test/validators.js index 91794d521..12db2030f 100644 --- a/test/validators.js +++ b/test/validators.js @@ -4413,6 +4413,24 @@ describe('Validators', () => { 'AAAAAAAA-1111-1111-AAAG-111111111111', ], }); + test({ + validator: 'isUUID', + args: [null], + valid: [ + 'A117FBC9-4BED-3078-CF07-9141BA07C9F3', + 'A117FBC9-4BED-4078-8F07-9141BA07C9F3', + 'A117FBC9-4BED-5078-AF07-9141BA07C9F3', + ], + invalid: [ + '', + 'xxxA987FBC9-4BED-3078-CF07-9141BA07C9F3', + 'A117FBC9-4BED-3078-CF07-9141BA07C9F3xxx', + 'A117FBC94BED3078CF079141BA07C9F3', + '911859', + '911FBC9-4BED-3078-CF07A-9141BA07C9F3', + 'A11AAAAA-1111-1111-AAAG-111111111111', + ], + }); test({ validator: 'isUUID', args: [3],