JavaScript URL.canParse() — перевірка коректності адреси
Статичний метод URL.canParse() перевіряє, чи є рядок коректною адресою — і повертає true або false.
Загальний опис
До нього перевірку писали через try...catch навколо new URL() — бо конструктор на сміття кидає помилку. Виглядало це так, ніби виняток використовують замість умови, і всім було трохи соромно.
canParse() робить те саме чесно й без винятків. Другим аргументом, як і в конструктора, можна передати базову адресу — тоді перевіряється й відносне посилання.
- Порада
-
Валідуєш поле «сайт» у формі — це рівно те, що треба. Регулярка для адрес завжди щось пропускає або щось відкидає даремно.
автор: NagarD
Переглядачі
| Переглядач | ||||||
|---|---|---|---|---|---|---|
| canParse | 120+ | 115+ | 17+ | 106+ | 120+ | - |
| Переглядач | ||||
|---|---|---|---|---|
| canParse | 120+ | yes | yes | 17+ |
Приклади
+ запропонувати свій приклад у пісочниці
Валідація адреси без try...catch.
HTML
<input id="site" placeholder="https://example.com">
JS
const input = document.getElementById('site');
input.addEventListener('blur', () => {
const valid = URL.canParse(input.value);
input.setCustomValidity(valid ? '' : 'Некоректна адреса');
});
console.log(URL.canParse('https://css.in.ua')); // true
console.log(URL.canParse('не адреса')); // false
// старий спосіб — виняток замість умови
// try { new URL(text); } catch { ... }
Коментарі
Коментарів ще немає — будьте першим!