2017-01-05 2 views
0

Имейте это http://123.456.789.1:4200 в конечном итоге будет http://example.com:4200 мне нужно использовать JavaScript, чтобы получить только http://123.456.789.1/http://example.comКак URL регулярного выражения, но исключить порт?

В настоящее время я использую это /(.*[a-zA-Z0-9])/i, но он просто выбирает весь адрес Ip ​​включая номер порта.

Как выбрать только IP-адрес или доменное имя?

+0

Что относительно IPv6? Есть ли шансы столкнуться с ними? – Lloyd

ответ

1

Попробуйте это регулярное выражение. /(http|https):\/\/.+?(?=:)/i.

Он должен соответствовать схеме схемы http и https.

1

Использование ниже регулярное выражение:

https?:\/\/[^:\/]+ 

Проверить эту ссылку для получения более подробной информации: https://regex101.com/r/aods6f/1

+1

Пожалуйста, избегайте ссылок только на ответы (http://meta.stackoverflow.com/tags/link-only-answers/info). Ответы, которые являются «чуть больше, чем ссылка на внешний сайт» [могут быть удалены] (http://stackoverflow.com/help/deleted-answers). – Quentin

0

Чтобы соответствовать хост вы можете использовать:

result = urlstring.match(/^[a-z][a-z0-9+.-]*:\/\/([a-z0-9._~%!$&'()*+,;=-][email protected])?([a-z0-9._~%-]+|\[[a-z0-9._~%!$&'()*+,;=:-]+\])/ig); 

Regex 101

-1

Вы могли бы сделать что этот путь (без регулярного выражения), предполагая, что порт i s всегда на второй толстой кишке:

var url = "http://example.com:4200".split(":"); 
url[0] + url[1] // That will be "http//example.com" 
+0

в то время как полезно, ОП запросил использование регулярного выражения. –

Смежные вопросы