如何正则表达式url但排除端口?

时间:2017-01-05 17:08:00

标签: javascript regex

这个http://123.456.789.1:4200最终会http://example.com:4200我需要使用javascript才能获得http://123.456.789.1 / http://example.com

我目前正在使用此/(.*[a-zA-Z0-9])/i,但它只选择整个IP地址,包括端口号。

如何只选择IP地址或域名?

4 个答案:

答案 0 :(得分:1)

试试这个正则表达式。 /(http|https):\/\/.+?(?=:)/i

它应该与httphttps uri方案匹配。

答案 1 :(得分:1)

使用以下正则表达式:

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

点击此链接了解详情:https://regex101.com/r/aods6f/1

答案 2 :(得分:0)

要匹配您可以使用的主机:

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

Regex 101

答案 3 :(得分:-1)

你可以这样做(没有正则表达式),假设端口总是在第二个冒号上:

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