🧱 Суть
URL.canParse() – это современный метод JavaScript для проверки, можно ли создать корректный URL из строки.
Он возвращает:
true→ строка является валидным URLfalse→ строка не может быть разобрана как URL
Пример:
URL.canParse('https://example.com');
// true
URL.canParse('hello');
// false📦 Проблема
1. Раньше для проверки URL использовали try/catch
Например:
function isValidUrl(value: string) {
try {
new URL(value);
return true;
} catch {
return false;
}
}Проблема:
- создание ошибок – дорогая операция
catchиспользовался как обычная проверка- при большом количестве невалидных строк это может влиять на производительность
2. new URL() сразу выбрасывает ошибку
new URL('hello');Результат:
TypeError: Invalid URLЕсли нужно только проверить строку – создавать исключение избыточно.
✅ Решение
Использовать:
URL.canParse()Он выполняет проверку без создания исключений.
💻 Код
Проверка URL:
const isValid = URL.canParse('https://example.com');
console.log(isValid);
// trueИспользование вместо try/catch:
function isValidUrl(value: string) {
return URL.canParse(value);
}С указанием базового URL:
URL.canParse('/profile', 'https://example.com');
// trueПотому что относительный URL становится:
https://example.com/profileПоддержка
URL.canParse() входит в Baseline Widely Available.
Поддерживается современными браузерами с декабря 2023 года, поэтому в большинстве проектов его уже можно использовать без дополнительных проверок.
🎯 Вывод
URL.canParse()– быстрый способ проверить URL- заменяет
try/catchвокругnew URL() - не создаёт исключения для невалидных данных
- особенно полезен при проверке большого количества строк
- для обычной валидации URL лучше использовать именно его