From 78d7d0f5308340d6b82a2f372e24292612114165 Mon Sep 17 00:00:00 2001 From: Christopher Ayala Date: Sat, 12 Oct 2019 00:39:54 +0900 Subject: [PATCH 1/2] Added validation for '0x'-prefixed hex strings. --- lib/isHexadecimal.js | 2 +- src/lib/isHexadecimal.js | 2 +- test/validators.js | 4 ++++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/isHexadecimal.js b/lib/isHexadecimal.js index fd894f860..93752a5b6 100644 --- a/lib/isHexadecimal.js +++ b/lib/isHexadecimal.js @@ -9,7 +9,7 @@ var _assertString = _interopRequireDefault(require("./util/assertString")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -var hexadecimal = /^[0-9A-F]+$/i; +var hexadecimal = /^(0x)?[0-9A-F]+$/i; function isHexadecimal(str) { (0, _assertString.default)(str); diff --git a/src/lib/isHexadecimal.js b/src/lib/isHexadecimal.js index 1e4f17e03..5ece23729 100644 --- a/src/lib/isHexadecimal.js +++ b/src/lib/isHexadecimal.js @@ -1,6 +1,6 @@ import assertString from './util/assertString'; -const hexadecimal = /^[0-9A-F]+$/i; +const hexadecimal = /^(0x)?[0-9A-F]+$/i; export default function isHexadecimal(str) { assertString(str); diff --git a/test/validators.js b/test/validators.js index 09715fb3e..8f28318f0 100644 --- a/test/validators.js +++ b/test/validators.js @@ -2495,11 +2495,15 @@ describe('Validators', () => { valid: [ 'deadBEEF', 'ff0044', + '0xff0044', + '0XfF0044', ], invalid: [ 'abcdefg', '', '..', + '0xa2h', + '0xa20x', ], }); }); From ed6ebb203b5ecadf77dfb716d611b14932184696 Mon Sep 17 00:00:00 2001 From: Christopher AYALA Date: Sat, 12 Oct 2019 22:14:12 +0900 Subject: [PATCH 2/2] Added 0h-prefix as an acceptable hexadecimal format. --- src/lib/isHexadecimal.js | 2 +- test/validators.js | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/lib/isHexadecimal.js b/src/lib/isHexadecimal.js index 5ece23729..19adb077a 100644 --- a/src/lib/isHexadecimal.js +++ b/src/lib/isHexadecimal.js @@ -1,6 +1,6 @@ import assertString from './util/assertString'; -const hexadecimal = /^(0x)?[0-9A-F]+$/i; +const hexadecimal = /^(0x|0h)?[0-9A-F]+$/i; export default function isHexadecimal(str) { assertString(str); diff --git a/test/validators.js b/test/validators.js index 8f28318f0..63a34636a 100644 --- a/test/validators.js +++ b/test/validators.js @@ -2497,6 +2497,11 @@ describe('Validators', () => { 'ff0044', '0xff0044', '0XfF0044', + '0x0123456789abcDEF', + '0X0123456789abcDEF', + '0hfedCBA9876543210', + '0HfedCBA9876543210', + '0123456789abcDEF', ], invalid: [ 'abcdefg', @@ -2504,6 +2509,9 @@ describe('Validators', () => { '..', '0xa2h', '0xa20x', + '0x0123456789abcDEFq', + '0hfedCBA9876543210q', + '01234q56789abcDEF', ], }); });