栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

JavaScript从字符串中提取主机名

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaScript从字符串中提取主机名

我建议使用npm软件包psl公共后缀列表。“公共后缀列表”是所有有效域后缀和规则的列表,不仅包括国家/地区代码顶级域,还包括将被视为根域的unipre字符(即www。食狮。公司.cn,bckobe.jp等)。

尝试:

npm install --save psl

然后用我的“ extractHostname”实现运行:

let psl = require('psl');let url = 'http://www.youtube.com/watch?v=ClkQA2Lb_iE';psl.get(extractHostname(url)); // returns youtube.com

我不能使用npm软件包,因此下面仅测试extractHostname。

function extractHostname(url) {    var hostname;    //find & remove protocol (http, ftp, etc.) and get hostname    if (url.indexOf("//") > -1) {        hostname = url.split('/')[2];    }    else {        hostname = url.split('/')[0];    }    //find & remove port number    hostname = hostname.split(':')[0];    //find & remove "?"    hostname = hostname.split('?')[0];    return hostname;}//test the preconsole.log("== Testing extractHostname: ==");console.log(extractHostname("http://www.blog.classroom.me.uk/index.php"));console.log(extractHostname("http://www.youtube.com/watch?v=ClkQA2Lb_iE"));console.log(extractHostname("https://www.youtube.com/watch?v=ClkQA2Lb_iE"));console.log(extractHostname("www.youtube.com/watch?v=ClkQA2Lb_iE"));console.log(extractHostname("ftps://ftp.websitename.com/dir/file.txt"));console.log(extractHostname("websitename.com:1234/dir/file.txt"));console.log(extractHostname("ftps://websitename.com:1234/dir/file.txt"));console.log(extractHostname("example.com?param=value"));console.log(extractHostname("https://facebook.github.io/jest/"));console.log(extractHostname("//youtube.com/watch?v=ClkQA2Lb_iE"));console.log(extractHostname("http://localhost:4200/watch?v=ClkQA2Lb_iE"));

无论具有协议或什至端口号,都可以提取域。这是一个非常简化的非正则表达式解决方案,所以我认为这可以做到。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/415177.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号