使用正则表达式从url中删除主机名和端口

mdp*_*mdp 8 html javascript regex

我想删除

http://localhost:7001/
Run Code Online (Sandbox Code Playgroud)

部分来自

http://localhost:7001/www.facebook.com
Run Code Online (Sandbox Code Playgroud)

得到输出

www.facebook.com
Run Code Online (Sandbox Code Playgroud)

什么是我可以用来实现这个确切模式的正则表达式?

ati*_*ruz 8

要使用javascript,您可以使用以下代码:

var URL = "http://localhost:7001/www.facebook.com";
var newURL = URL.replace (/^[a-z]{4,5}\:\/{2}[a-z]{1,}\:[0-9]{1,4}.(.*)/, '$1'); // http or https
alert (newURL);
Run Code Online (Sandbox Code Playgroud)

看看这个代码在行动这里

此致,Victor


Isr*_*les 8

您不需要任何库或REGEX

var url = new URL('http://localhost:7001/www.facebook.com')
console.log(url.pathname)
Run Code Online (Sandbox Code Playgroud)

https://developer.mozilla.org/zh-CN/docs/Web/API/URL

遗憾


小智 5

这就是我在不使用正则表达式的情况下使其工作的方式:

var URL = "http://localhost:7001/www.facebook.com";

var URLsplit = URL.split('/');

var host = URLsplit[0] + "//" + URLsplit[2] + "/";

var newURL = URL.replace(host, '');
Run Code Online (Sandbox Code Playgroud)

可能不是一个优雅的解决方案,但对于那些对正则表达式没有太多经验的人来说应该更容易理解(比如我!唉!).


tal*_*ore 5

基于@atiruz答案,但这是

url = url.replace( /^[a-zA-Z]{3,5}\:\/{2}[a-zA-Z0-9_.:-]+\//, '' );
Run Code Online (Sandbox Code Playgroud)
  • 最短的
  • 也可以使用https或ftp
  • 可以带或不带显式端口的网址