JavaScript如何从完整URL中提取纯域名(移除路径及查询参数)
JavaScript 提取URL带协议域名的实现方法
有两种常用实现方案,优先推荐使用原生API:
方案1:原生URL API(推荐)
浏览器、Node.js 10+ 环境均原生支持URL构造函数,直接解析后取origin属性即可,无需手动处理字符串拆分,准确率最高。
示例代码:
const rawUrl = 'https://www.example.local/cars/bmw/12312?exp=2'; const parsedUrl = new URL(rawUrl); const result = parsedUrl.origin; // 输出结果:https://www.example.local
如果不能确保输入的URL一定合法,可以加异常捕获逻辑:
function extractOrigin(urlStr) { try { return new URL(urlStr).origin; } catch (err) { // 非法URL可根据业务需求返回默认值或抛出错误 return ''; } }
方案2:正则匹配(仅适用于兼容旧环境场景)
如果需要兼容不支持URL API的极端老旧环境,可以用正则匹配提取:
const rawUrl = 'https://www.example.local/cars/bmw/12312?exp=2'; const result = rawUrl.match(/^https?:\/\/[^/]+/)[0]; // 输出结果:https://www.example.local
注意:正则方案仅适用于确认输入为合法http/https协议URL的场景,存在非法输入匹配错误的风险,非必要不推荐使用
内容的提问来源于stack exchange,提问作者deptdev
相关产品推荐
相关产品推荐

