На этот вопрос уже есть ответ:

В настоящее время у меня есть поле ввода, которое будет определять URL-адрес и анализировать данные.

Итак, сейчас я использую:

var urlR = /^(?:([A-Za-z] ):)?(/{0,3})([0-9.-A-Za-z] )
           (?::(d ))?(?:/([^?#]*))?(?:?([^#]*))?(?:#(.*))?$/;
var url= content.match(urlR);

Проблема в том, что при вводе URL-адреса типа www.google.com он не работает. когда я вошел http://www.google.com, он работает.

, я не очень хорошо владею регулярными выражениями. Может кто-нибудь мне помочь?

Этот вопрос задавался ранее и уже имеет ответ. Если эти ответы не полностью отвечают на ваш вопрос, пожалуйста, задать новый вопрос Глядя на вывод

Regex, если вы хотите, чтобы URL начинался с HTTP / HTTPS:

https?://(www.)?[-a-zA-Z0-9@:%._ ~#=]{2,256}.[a-z]{2,6}b([-a-zA-Z0-9@:%_ .~#?&//=]*)

console.log (require (‘util’). Inspect (obj, {showHidden: false, deep: null})

[-a-zA-Z0-9@:%._ ~#=]{2,256}.[a-z]{2,6}b([-a-zA-Z0-9@:%_ .~#?&//=]*)

Чтобы попробовать это, см. http://regexr.com?37i6s , и запустите файл с помощью: http: // regexr.com/3e6m0 Глядя на вывод

Пример реализации JavaScript:

var expression = /[-a-zA-Z0-9@:%_ .~#?&//=]{2,256}.[a-z]{2,4}b(/[-a-zA-Z0-9@:%_ .~#?&//=]*)?/gi;
var regex = new RegExp(expression);
var t = 'www.google.com';

if (t.match(regex)) {
  alert("Successful match");
} else {
  alert("No match");
}
(https?://(?:www.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-] [a-zA-Z0-9].[^s]{2,}|www.[a-zA-Z0-9][a-zA-Z0-9-] [a-zA-Z0-9].[^s]{2,}|https?://(?:www.|(?!www))[a-zA-Z0-9] .[^s]{2,}|www.[a-zA-Z0-9] .[^s]{2,})

Будет соответствовать следующим случаям

  • http://www.foufos.gr
  • https://www.foufos.gr
  • http://foufos.gr
  • http://www.foufos.gr/kino
  • http://werer.gr
  • www.foufos.gr
  • www.mp3.com
  • www.t.co
  • http://t.co
  • http://www.t.co
  • https://www.t.co
  • www.aa.com
  • http://aa.com
  • http://www.aa.com
  • https://www.aa.com

НЕ будет соответствовать следующему

  • www.foufos
  • www.foufos-.gr
  • www.-foufos.gr
  • foufos.gr
  • http://www.foufos
  • http://foufos
  • www.mp3#.com
var expression = /(https?://(?:www.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-] [a-zA-Z0-9].[^s]{2,}|www.[a-zA-Z0-9][a-zA-Z0-9-] [a-zA-Z0-9].[^s]{2,}|https?://(?:www.|(?!www))[a-zA-Z0-9] .[^s]{2,}|www.[a-zA-Z0-9] .[^s]{2,})/gi;
var regex = new RegExp(expression);

var check = [
  'http://www.foufos.gr',
  'https://www.foufos.gr',
  'http://foufos.gr',
  'http://www.foufos.gr/kino',
  'http://werer.gr',
  'www.foufos.gr',
  'www.mp3.com',
  'www.t.co',
  'http://t.co',
  'http://www.t.co',
  'https://www.t.co',
  'www.aa.com',
  'http://aa.com',
  'http://www.aa.com',
  'https://www.aa.com',
  'www.foufos',
  'www.foufos-.gr',
  'www.-foufos.gr',
  'foufos.gr',
  'http://www.foufos',
  'http://foufos',
  'www.mp3#.com'
];

check.forEach(function(entry) {
  if (entry.match(regex)) {
    $("#output").append( "<div >Success: "   entry   "</div>" );
  } else {
    $("#output").append( "<div>Fail: "   entry   "</div>" );
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="output"></div>

Проверить это в rubular — НОВАЯ версия

Проверить это в rubular — старая версия Это дроиды, которых вы ищете. Это взято из

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

 function isURL(str) {
     var urlRegex = '^(?!mailto:)(?:(?:http|https|ftp)://)(?:\S (?::\S*)?@)?(?:(?:(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[0-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\u00a1-\uffff0-9] -?)*[a-z\u00a1-\uffff0-9] )(?:\.(?:[a-z\u00a1-\uffff0-9] -?)*[a-z\u00a1-\uffff0-9] )*(?:\.(?:[a-z\u00a1-\uffff]{2,})))|localhost)(?::\d{2,5})?(?:(/|\?|#)[^\s]*)?$';
     var url = new RegExp(urlRegex, 'i');
     return str.length < 2083 && url.test(str);
}

В этом решении вы можете изменить

var regex = new RegExp("^(http[s]?:\/\/(www\.)?|ftp:\/\/(www\.)?|www\.){1}([0-9A-Za-z-\.@:%_ ~#=] ) ((\.[a-zA-Z]{2,3}) )(/(.)*)?(\?(.)*)?");

if(regex.test("http://google.com")){
  alert("Successful match");
}else{
  alert("No match");
}

, чтобы оно соответствовало имени домена / субдомена. В этом решении также учитываются параметры строки запроса. [-0-9A-Za-z.@:%_ ~#= Если вы не используете

Надеюсь, это поможет. RegEx FormalParameters \ by Глядя на вывод

Я пытался собрать немного JavaScript для проверки доменного имени (например, google.com) и, если оно проверяет, включить кнопку отправки. Я думал, что поделюсь своим кодом для тех, кто хочет сделать что-то подобное. Ожидается домен без каких-либо http: // или www. значение. Сценарий использует сокращенное регулярное выражение сверху для сопоставления доменов, что не является строгим в отношении поддельного TLD.

Ссылки на категории персонажей:

(ftp|http|https)://(w :{0,1}w*@)?(S )(:[0-9] )?(/|/([w#!:.? =&%@!-/]))?

javascript — обновление изображения новым с тем же URL-адресом — переполнение стека

http://jsfiddle.net/nMVDS/1/

$(function () {
  $('#whitelist_add').keyup(function () {
    if ($(this).val() == '') { //Check to see if there is any text entered
        //If there is no text within the input, disable the button
        $('.whitelistCheck').attr('disabled', 'disabled');
    } else {
        // Domain name regular expression
        var regex = new RegExp("^([0-9A-Za-z-\.@:%_ ~#=] ) ((\.[a-zA-Z]{2,3}) )(/(.)*)?(\?(.)*)?");
        if (regex.test($(this).val())) {
            // Domain looks OK
            //alert("Successful match");
            $('.whitelistCheck').removeAttr('disabled');
        } else {
            // Domain is NOT OK
            //alert("No match");
            $('.whitelistCheck').attr('disabled', 'disabled');
        }
    }
  });
});

HTML FORM:

<form action="domain_management.php" method="get">
    <input type="text" name="whitelist_add" id="whitelist_add" placeholder="domain.com">
    <button type="submit" class="btn btn-success whitelistCheck" disabled='disabled'>Add to Whitelist</button>
</form>