js正则如何提取url中的域名

求一个js正则表达式提取url中的域名,举例

URL域名
https://www.baidu.com/www.baidu.com“
http://www.baidu.com/www.baidu.com“
http://www.baidu.com/www.baidu.com“
http://www.baidu.com/#/userwww.baidu.com“
http://www.baidu.com/swww.baidu.com“
http://www.baidu.com/s?word=123www.baidu.com“
http://www.baidu.com/?word=123www.baidu.com“

var str = 'http://www.baidu.com/#/user'
str = str.replace(/https?:\/\/(.*?)\/.*/, '$1')
console.log(str) // www.baidu.com

 var urlReg = /[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?/;
    var p = "http://www.baidu.com/s?word=123"
    console.log(urlReg.exec(p)[0])

字符串截取也行

https://c.runoob.com/front-end/854/

img

url由三部分组成:协议、域名、路径;三者组成格式为:协议://域名/路径;可以看到域名的前后都由'/'字符隔开,因此可以使用'/'来分割url以获取域名。


var url= 'https://www.baidu.com/';
var domain = url.split('/');  //使用'/'将url按照协议、域名、路径三部分进行分割
if (domain[2]) {  //判断是否解析到域名
    domain = domain[2];  //将解析到的域名保存在domain中
} else {
    domain= '';
}

不就是location.host