Регулярное выражение для простой проверки URL

Категория: Регулярные выражения · Язык: JavaScript · Обновлено:

Регулярка может быстро отсеять строку без схемы http:// или https://, но не заменяет разбор URL. Для проверки структуры используйте встроенный URL в JavaScript: он корректно разбирает host, порт, путь и query string.

Проверить и разобрать URL через URL

JavaScript
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

Если нужен именно грубый фильтр перед разбором, регулярка может проверить схему и наличие непробельного текста после неё.

JavaScript
const urlLike = /^https?:\/\/\S+$/i;
console.log(urlLike.test('https://example.com')); // true

Способ

Для чего подходит

Простая regex

Быстрая подсказка формата

Конструктор URL

Разобрать URL и проверить схему

Запрос к адресу

Проверить доступность, с ограничениями безопасности

Проверяет ли regex, что сайт существует?

Нет. Она проверяет только форму текста. Доступность зависит от DNS, сети, TLS, авторизации и ответа сервера.

Как разрешить только HTTPS?

В URL проверяйте url.protocol === 'https:'. Не полагайтесь на регистрозависимую регулярку для схемы.