获取 URL 资源文件后缀

从 URL 字符串中提取文件扩展名

问题

给定一个资源链接,如 https://www.baidu.com/index.html,实现一个方法获取该资源的后缀名(如 html)。

解答

方法一:使用 substring 和 lastIndexOf

function getFileExtension(url) {
  if (typeof url !== 'string') {
    return '';
  }
  
  return url.substring(url.lastIndexOf('.') + 1);
}

const fileName = "https://www.baidu.com/index.html";
console.log(getFileExtension(fileName)); // "html"

方法二:使用 split 和 pop

function getFileExtension(url) {
  if (typeof url !== 'string') {
    return '';
  }
  
  return url.split('.').pop().toLowerCase();
}

const fileName = "https://www.baidu.com/index.html";
console.log(getFileExtension(fileName)); // "html"

关键点

  • lastIndexOf('.') 找到最后一个点的位置,substring 截取后面的部分
  • split('.') 按点分割字符串,pop() 取最后一个元素
  • 需要对输入参数进行类型检查,避免非字符串类型报错
  • 方法二可以配合 toLowerCase() 统一转为小写