From a62e3f2a6efb7b3136d212d356438fc4f489090e Mon Sep 17 00:00:00 2001 From: HardAndHeavy Date: Thu, 11 Jun 2026 21:42:20 +0300 Subject: [PATCH 1/2] fix: support punycode TLDs in URL regex --- src/utils/helpers.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/helpers.ts b/src/utils/helpers.ts index fcddc9258..804dacad4 100644 --- a/src/utils/helpers.ts +++ b/src/utils/helpers.ts @@ -130,7 +130,7 @@ export const validator = { isValidUrl: (urlString: string) => { const urlPattern = new RegExp( "^(https?:\\/\\/)?" + // validate protocol - "((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|localhost|" + // validate domain name + "((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+([a-z]{2,}|xn--[a-z\\d-]+)|localhost|" + // validate domain name "((\\d{1,3}\\.){3}\\d{1,3}))" + // validate OR ip (v4) address "(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*" + // validate port and path "(\\?[;&a-z\\d%_.~+=-]*)?" + // validate query string From 7cf236045220cd0b850fef3ed7a411e644fe1986 Mon Sep 17 00:00:00 2001 From: HardAndHeavy Date: Thu, 11 Jun 2026 22:04:57 +0300 Subject: [PATCH 2/2] Tightened the punycode TLD branch per CodeRabbit review to reject trailing hyphens (RFC 1035 compliance). --- src/utils/helpers.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/utils/helpers.ts b/src/utils/helpers.ts index 804dacad4..ca6674494 100644 --- a/src/utils/helpers.ts +++ b/src/utils/helpers.ts @@ -130,7 +130,7 @@ export const validator = { isValidUrl: (urlString: string) => { const urlPattern = new RegExp( "^(https?:\\/\\/)?" + // validate protocol - "((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+([a-z]{2,}|xn--[a-z\\d-]+)|localhost|" + // validate domain name + "((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+([a-z]{2,}|xn--[a-z\\d](?:[a-z\\d-]*[a-z\\d])?)|localhost|" + // validate domain name "((\\d{1,3}\\.){3}\\d{1,3}))" + // validate OR ip (v4) address "(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*" + // validate port and path "(\\?[;&a-z\\d%_.~+=-]*)?" + // validate query string