Jquery получить доменное имя из URL и проверить, что доменное имя существует в массиве, который я уже - PullRequest
0 голосов
/ 15 октября 2018

У меня есть поле ввода с кнопкой отправки.Когда пользователь вводит любой URL-адрес в это поле и нажимает на кнопку «Отправить», я должен проверить

  1. , является ли это действительным URL-адресом, и
  2. , у меня есть массив имен домиан, и я должен проверитьвведенный URL-адрес от доменных имен, которые у меня уже есть.

Вот мой HTML

<input type="text" id="product_url" placeholder="Enter product's full url">
<button type="button" id="validate_url">Validate URL</button>

это массив доменов, которые у меня есть в jquery

  var testCases  = ["corsair.com","oculus.com","rcplanet.com","irobot","store.hp.com"]

Ответы [ 2 ]

0 голосов
/ 15 октября 2018

Используйте это

function isUrlValid(url) {
  return /^(https?|s?ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900- \uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(url);
}

$(document).ready(function() {
  $(document).on("click", "#ValidateURL", function() {
    var URL = $("#URL").val();
    var testCases = ["corsair.com", "oculus.com", "rcplanet.com", "irobot", "store.hp.com"]
    if (testCases.indexOf(URL) > -1) {
      if (isUrlValid('http://' + URL)) {
        console.log("URL found and valid URL");
      } else {
        console.log("URL found but invalid URL");
      }
    } else {
      console.log("URL not found");
    }
  })
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="URL" />
<button id="ValidateURL">Validate URL</button>
0 голосов
/ 15 октября 2018

Посмотрите на этот код, используя URL

var testCases = ["amazon.com","corsair.com", "oculus.com", "rcplanet.com", "irobot", "store.hp.com"]
$(function() {
  $("#validate_url").on("click", function() {
    var found = "", val = $(this).prev().val();
    try {
      var url = new URL(val);
      $.each(testCases, function(_, part) {
        if (url.hostname.indexOf(part) != -1) {
          found=part;
          return false; // leave the loop
        }
      })
    } catch (e) {
      console.log(e.message)
    }
    if (found) console.log("found",found)
    else console.log(val,"not found")
  })
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="product_url" placeholder="Enter product's full url">
<button type="button" id="validate_url">Validate URL</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...