Skip to content

Commit 5621771

Browse files
committed
Validators: accepts URL "https://example.com/?query" [Closes #190]
1 parent f3d295b commit 5621771

2 files changed

Lines changed: 6 additions & 0 deletions

File tree

src/Utils/Validators.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,8 @@ public static function isUrl(string $value): bool
310310
|\[[0-9a-f:]{3,39}\] # IPv6
311311
)(:\\d{1,5})? # port
312312
(/\\S*)? # path
313+
(\?\\S*)? # query
314+
(\#\\S*)? # fragment
313315
$)Dix", $value);
314316
}
315317

tests/Utils/Validators.is().phpt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,10 @@ test(function () {
214214
Assert::true(Validators::is('http://nette.org/path', 'url'));
215215
Assert::true(Validators::is('http://nette.org:8080/path', 'url'));
216216
Assert::true(Validators::is('https://www.nette.org/path', 'url'));
217+
Assert::true(Validators::is('https://www.nette.org/path?query#fragment', 'url'));
218+
Assert::true(Validators::is('https://www.nette.org?query', 'url'));
219+
Assert::true(Validators::is('https://www.nette.org#fragment', 'url'));
220+
Assert::true(Validators::is('https://www.nette.org?#', 'url'));
217221
Assert::true(Validators::is('https://example.c0m', 'url'));
218222
Assert::true(Validators::is('https://example.l', 'url'));
219223
Assert::true(Validators::is('http://one_two.example.com', 'url'));

0 commit comments

Comments
 (0)