You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求可提取URL主机名的JavaScript正则及函数实现方案

需求说明

需要编写一个JavaScript函数,实现以下功能:

  • 识别符合https://xxx.example.xx/sp格式的URL,移除https://前缀和末尾的/sp路径,仅保留主机名
  • 对于不符合该格式的内容(如nonurl.example.com),不做任何修改,保持原内容不变

示例转换效果:

https://comanage.example.edu/sp      -> comanage.example.edu
https://wiki.cs.example.org/sp       -> wiki.cs.example.org
https://intranet.math.example.edu/sp -> intranet.math.example.edu
https://myapp.example.com/sp         -> myapp.example.com
解决方案

以下是实现该功能的JavaScript代码,附带详细说明:

完整函数代码

function extractHostname(str) {
  // 匹配目标格式URL,捕获主机名部分
  const regex = /^https:\/\/([a-zA-Z0-9.-]+)\/sp$/;
  const matchResult = str.match(regex);
  // 匹配成功则返回捕获的主机名,否则返回原字符串
  return matchResult ? matchResult[1] : str;
}

正则表达式拆解说明

^https:\/\/([a-zA-Z0-9.-]+)\/sp$ 各部分作用:

  • ^:锁定字符串开头,确保内容是以https://起始
  • https:\/\/:匹配字面量https://,正则里斜杠需要用\转义
  • ([a-zA-Z0-9.-]+):捕获组,专门匹配主机名,允许的字符包括大小写字母、数字、点号和短横线,+表示至少包含一个有效字符
  • \/sp$:匹配末尾的/sp,$锁定字符串结尾,确保内容是以/sp结束

使用示例

// 测试目标格式URL
console.log(extractHostname("https://comanage.example.edu/sp")); // 输出: comanage.example.edu
console.log(extractHostname("https://wiki.cs.example.org/sp")); // 输出: wiki.cs.example.org

// 测试非目标格式内容
console.log(extractHostname("nonurl.example.com")); // 输出: nonurl.example.com
console.log(extractHostname("https://example.com/otherpath")); // 输出: https://example.com/otherpath
console.log(extractHostname("http://comanage.example.edu/sp")); // 输出: http://comanage.example.edu/sp

内容的提问来源于stack exchange,提问作者Karan Nayyar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 21:55:00