Регулярное выражение, чтобы соответствовать только URL с tld - PullRequest
0 голосов
/ 29 января 2019

Я знаю, что существуют бесконечные регулярные выражения для проверки URL, но я столкнулся с проблемой со всем, что нашел.Мне нужно регулярное выражение, которое будет соответствовать всем URL-адресам Http или Https, но не проверять, если ссылка не имеет tld и не проверять, если в ней отсутствует поддомен.Он также должен соответствовать полному URL-адресу, если это возможно.

Ниже приведены примеры URL, которые не должен проверять:

https://www
https://www.
https://www.exampledomain

Вот пара примеров URL-адресовэто должно подтвердить:

https://www.axiamed.com
https://www.axiamed.com/independent-software-vendors/

Я использовал следующее регулярное выражение ...

((ftp|https?)://[-\w]+(\.\w[-\w]*)+|(?:[a-z0-9](?:[-a-z0-9]*[a-z0-9])?\.)+(?: com\b|edu\b|biz\b|gov\b|in(?:t|fo)\b|mil\b|net\b|org\b|[a-z][a-z]\b))(\:\d+)?(/[^.!,?;"'<>()\[\]{}\s\x7F-\xFF]*(?:[.!,?]+[^.!,?;"'<>()\[\]{}\s\x7F-\xFF]+)*)?

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

Спасибо всем, кто хочет помочь!

Ответы [ 3 ]

0 голосов
/ 29 января 2019

Попробуйте это

^ (http://www.|https://www.)?[a-z0-9]+([-.]{1}[a-z0-9]+).[a-z]{2,5}(:[0-9]{1,5})?(/.)?$

var a =[
"https://www.example.com",
"http://www.example.com",
"www.example.com",
"example.com",
"http://blog.example.com",
"http://www.example.com/product",
"http://www.example.com/products?id=1&page=2",
"http://www.example.com#up",
"https://www",
"https://www.",
"https://www.exampledomain",
"https://www.axiamed.com",
"https://www.axiamed.com/independent-software-vendors/",
];
a.forEach(function(url) {
   var result =/^(http:\/\/www\.|https:\/\/www\.)[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/.test(url);
if(result){


console.log(url+" TRUE");
}
else{

console.log(url+" FALSE")
}
});
0 голосов
/ 29 января 2019

Как насчет?/^(ftp|https?)\:\/{2}w{3}\.[a-z_A-Z]{1,}\.[a-z]{3}(\/(.){1,})?/g

var urls = [
    "https://www",
    "https://www.",
    "https://www.exampledomain",
    "https://www.axiamed.com",
    "https://www.axiamed.com/independent-software-vendors/"
]
var valids = urls.map((str) => {
  return str.match(/^(ftp|https?)\:\/{2}w{3}\.[a-z_A-Z]{1,}\.[a-z]{3}(\/(.){1,})?/g)
})
console.log(valids)
0 голосов
/ 29 января 2019

Хай, это пример кода Javascript для вашей проблемы

var result =/^(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/|ftp:\/\/www\.|ftp:\/\/)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?$/.test("https://www.axiamed.com/independent-software-vendors/");
if(result)
alert("url Matching");
else
alert("Url not matching")

Надеюсь, это поможет вам

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...