Регулярное выражение для простой проверки URL
Регулярка может быстро отсеять строку без схемы http:// или https://, но не заменяет разбор URL. Для проверки структуры используйте встроенный URL в JavaScript: он корректно разбирает host, порт, путь и query string.
Проверить и разобрать URL через URL
function isHttpUrl(value) {
try {
const url = new URL(value);
return url.protocol === 'http:' || url.protocol === 'https:';
} catch {
return false;
}
}
console.log(isHttpUrl('https://example.com/path?q=1')); // true
console.log(isHttpUrl('not a url')); // falseЕсли нужен именно грубый фильтр перед разбором, регулярка может проверить схему и наличие непробельного текста после неё.
const urlLike = /^https?:\/\/\S+$/i;
console.log(urlLike.test('https://example.com')); // trueСпособ | Для чего подходит |
|---|---|
Простая regex | Быстрая подсказка формата |
Конструктор | Разобрать URL и проверить схему |
Запрос к адресу | Проверить доступность, с ограничениями безопасности |
Проверяет ли regex, что сайт существует?
Нет. Она проверяет только форму текста. Доступность зависит от DNS, сети, TLS, авторизации и ответа сервера.
Как разрешить только HTTPS?
В URL проверяйте url.protocol === 'https:'. Не полагайтесь на регистрозависимую регулярку для схемы.