From 7b17f1f71226b2cac6b8185c8f932ed819066860 Mon Sep 17 00:00:00 2001 From: "codefix-patchflow[bot]" <292349666+codefix-patchflow[bot]@users.noreply.github.com> Date: Fri, 19 Jun 2026 10:47:52 +0000 Subject: [PATCH] fix: allow protocol-less hostnames with numeric ports --- src/lib/isURL.js | 4 +++- test/validators.test.js | 1 + 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/lib/isURL.js b/src/lib/isURL.js index 8ae971ed6..8543f6c40 100644 --- a/src/lib/isURL.js +++ b/src/lib/isURL.js @@ -120,6 +120,8 @@ export default function isURL(url, options) { ? after_colon : after_colon.substring(0, first_slash_position); const at_position = before_slash.indexOf('@'); + // Numeric text after the first colon is a port for protocol-less hosts. + const is_host_with_port = !options.require_protocol && /^[0-9]+$/.test(before_slash); if (at_position !== -1) { const before_at = before_slash.substring(0, at_position); @@ -141,7 +143,7 @@ export default function isURL(url, options) { return false; } } - } else { + } else if (!is_host_with_port) { // No @ symbol, this is definitely a protocol url = cleanUpProtocol(potential_protocol); diff --git a/test/validators.test.js b/test/validators.test.js index 5196c6fe9..9db1f1745 100644 --- a/test/validators.test.js +++ b/test/validators.test.js @@ -499,6 +499,7 @@ describe('Validators', () => { 'localhost', 'localhost:3000', 'service-name:8080', + 'my-3272-service:9000', 'https://localhost', 'http://localhost:3000', 'http://service-name:8080',