如何从URL中提取包含协议的前缀子域名对应部分?
解决方案
没有现成的window相关原生方法可以直接实现该需求,你需要自行编写简单的工具方法完成截取。
实现思路
你要提取的http://abc属于自定义规则的URL片段,原生浏览器URL相关API仅支持返回origin、hostname、protocol这类标准化的通用URL结构,没有针对这类自定义截取的内置方法。你可以基于原生URL构造器先解析URL,再按规则做字符串处理即可,示例如下:
// 工具方法,可直接传入目标URL,不传默认取当前页面地址 function getCustomUrlPrefix(targetUrl = window.location.href) { const parsedUrl = new URL(targetUrl); // 取域名第一个.之前的部分拼接协议 const firstDomainSegment = parsedUrl.hostname.split('.')[0]; return `${parsedUrl.protocol}//${firstDomainSegment}`; } // 测试示例 console.log(getCustomUrlPrefix('http://abc.xyz.com')) // 输出结果:http://abc
如果你的截取规则有调整(比如不是取第一个点之前的内容),只要修改字符串分割的逻辑即可适配。
内容的提问来源于stack exchange,提问作者techguy
相关产品推荐
相关产品推荐

