TypeScript中如何删除字符串内的子域名并保留主域名
TypeScript 截取主域名实现方案
核心实现逻辑
你的需求为删除字符串中第一个英文句点及之前的所有内容,以下是两种可直接使用的实现方式:
方法1:indexOf+substring实现(性能最优,推荐)
直接定位第一个句点位置后截取剩余内容,无需拆分整个字符串,性能更优:
function getMainDomain(domain: string): string { const firstDotPos = domain.indexOf('.'); // 适配无句点的异常输入场景,可根据业务需求调整为抛出错误 if (firstDotPos === -1) return domain; return domain.substring(firstDotPos + 1); }
方法2:split拆分拼接实现(代码更简洁)
将域名按句点拆分后丢弃第一段,再重新拼接为字符串:
function getMainDomain(domain: string): string { const domainSegments = domain.split('.'); if (domainSegments.length < 2) return domain; return domainSegments.slice(1).join('.'); }
效果验证
两种方法都可以覆盖你提到的所有场景:
- 输入
subdomain.domain.com→ 输出domain.com - 输入
sub.domain.com→ 输出domain.com - 输入
subdomain.new-domain.com→ 输出new-domain.com
补充说明
如果你的业务场景存在com.cn、co.uk这类国家/地区级二级域名后缀,以上基础方法不适用,需要额外对接公共后缀规则库做适配,当前方案完全匹配你提出的核心逻辑需求。
内容的提问来源于stack exchange,提问作者Web Develop Wolf
相关产品推荐
相关产品推荐

