如何正确提取完全合格域名(FQDN)中的主机名host部分
解决方案
你原有代码的问题在于:当hostName不含.时,hostName.indexOf('.')会返回-1,而JavaScript的substring方法接收负数作为结束索引时,会自动将其转换为0,最终执行substring(0, 0)就会返回空字符串。
方案1:split方法(最简洁)
直接按.分割字符串后取第一个元素即可,无论hostName是否为FQDN都适用:
const host = hostName.split('.')[0];
方案2:兼容原有写法的判断逻辑
如果要沿用substring的写法,可以先判断是否存在.再做截取:
const dotIndex = hostName.indexOf('.'); const host = dotIndex === -1 ? hostName : hostName.substring(0, dotIndex);
内容的提问来源于stack exchange,提问作者meallhour
相关产品推荐
相关产品推荐

