5

Проверьте, является ли строка в JavaScript URL-адресом

11

Существует ли способ в JavaScript проверить, является ли строка URL?

Исключены регулярные выражения, поскольку URL, скорее всего, может быть записан как stackoverflow; другими словами, в нем может отсутствовать .com, www или http.

5 ответ(ов)

1

В вашем коде используется функция isValidURL, которая проверяет, является ли строка действительным URL-адресом с учетом наличия или отсутствия префикса http или https.

Вот код функции:

function isValidURL(string) {
  var res = string.match(/(http(s)?:\/\/.)?(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b([-a-zA-Z0-9@:%_\+.~#?&//=]*)/g);
  return (res !== null)
};

Далее вы тестируете ее с несколькими примерами:

  • testCase1 возвращает true, так как это валидный URL.
  • testCase2 также возвращает true — это длинный, но корректный URL.
  • testCase3 возвращает false, поскольку это не полный URL (нет домена).
  • testCase4, testCase5, и testCase7 тоже возвращают false, поскольку это не валидные URL.
  • testCase6 возвращает true — это валидный адрес StackOverflow.
  • testCase8 возвращает false, так как домен слишком длинный и не соответствует ожидаемым критериям.

Если вам нужно улучшить эту функцию или добавить поддержку других форматов URL, можете использовать более комплексные регулярные выражения или библиотеки, такие как validator.js, которые обеспечивают более широкий диапазон проверки.

0

Чтобы провести валидацию URL с помощью JavaScript, вы можете использовать следующий код:

function ValidURL(str) {
  var regex = /(?:https?):\/\/(\w+:?\w*)?(\S+)(:\d+)?(\/|\/([\w#!:.?+=&%!\-\/]))?/;
  if(!regex.test(str)) {
    alert("Пожалуйста, введите корректный URL.");
    return false;
  } else {
    return true;
  }
}

В этом коде мы определяем функцию ValidURL, которая принимает строку str в качестве аргумента. Мы используем регулярное выражение для проверки, соответствует ли строка формату URL. Если строка не проходит проверку, отображается предупреждение с просьбой ввести корректный URL, и функция возвращает false. В противном случае функция возвращает true, что означает, что URL является допустимым.

0

Чтобы проверить, является ли строка корректным URL в вашем приложении, вы можете воспользоваться библиотекой valid-url. Вот пример того, как это можно сделать:

import { isWebUri } from 'valid-url';

function validateUrl(url) {
    if (!isWebUri(url)) {
        return "Некорректный URL.";
    }
    return "URL действителен.";
}

В данном коде мы импортируем функцию isWebUri из библиотеки valid-url. Затем в функции validateUrl проверяем, является ли переданная строка корректным URL. Если нет, возвращаем сообщение о некорректности URL, в противном случае — сообщение о валидности.

Убедитесь, что вы установили библиотеку valid-url перед использованием:

npm install valid-url

Таким образом, использование этой библиотеки значительно упрощает проверку валидности URL.

0

Эта функция запрещает использование localhost и разрешает только URL-адреса для веб-страниц (т.е. допускаются только протоколы http или https).

Также она разрешает только безопасные символы, как определяется здесь: безопасные символы.

function isValidWebUrl(url) {
   let regEx = /^https?:\/\/(?:www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&//=]*)$/gm;
   return regEx.test(url);
}

Функция isValidWebUrl использует регулярное выражение для проверки, является ли переданный URL корректным. Она допускает либо http, либо https, и требует, чтобы в URL содержался домен, который начинается с www. (по желанию) и включает разрешенные символы. Если URL не соответствует этим критериям, функция возвращает false. Вы можете использовать эту функцию для валидации входящих URL перед обработкой.

0

Вот еще один метод для проверки валидности URL:

// ***примечание***: если входное значение пустое (""), функция возвращает true

var elm;
function isValidURL(u){
  // Предостережение/решение для проблемы, описанной в ***примечании***
  if (u !== "") {  
      if (!elm) {
          elm = document.createElement('input');
          elm.setAttribute('type', 'url');
      }
      elm.value = u;
      return elm.validity.valid;
  } else {
      return false;
  }
}

console.log(isValidURL(''));
console.log(isValidURL('http://www.google.com/'));
console.log(isValidURL('//google.com'));
console.log(isValidURL('google.com'));
console.log(isValidURL('localhost:8000'));

В этом коде функция isValidURL проверяет валидность URL с использованием элемента ввода типа 'url'. Если строка пустая, функция возвращает false. Обратите внимание, что создается элемент input только один раз, что улучшает производительность при повторных вызовах функции. Для непустых строк, функция устанавливает значение элемента и возвращает результат проверки валидности.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь