#19 获取文件的扩展名


  • 0
    administrators

    完成 extname 函数,它会接受一个文件名作为参数,你需要返回它的扩展名。

    例如,输入 emoji.png,返回 .png


  • 0

    .hello 扩展名不是 .hello??


  • 0
    administrators

    @zhpech 不是呢,.hello 没有扩展名


  • 0

    @胡子大哈 就是当传一个没有后缀的文件名时(例如 “hello” )应该返回空.


  • 1

    const extname = (filename) => filename.lastIndexOf('.') > 0 ? filename.slice(filename.lastIndexOf('.')) : '';


  • 0

    const extname = (filename) => {
        let str = filename.toString(),
            begin = str.lastindexOf(`.`),
            end = str.length,
            result = begin > 0 ? str.slice(begin, end) : ``;
        return result;
    }
    
    

  • 2

    const extname = (filename) => {
        if(!filename) return '';
        const reg = /^(.*)\.(.+)$/;
        var result = reg.exec(filename.toString().trim());
        return result && result[1] && result[2]? "." + result[2]:"";
    }
    

  • 0

    const extname = (filename) => {
        const matches = filename.match(/.+(\.\w+)$/i)
        return matches ? matches[1] : ''
    }
    

  • 0

    filename.match(/\.[^.]+$/)?filename.match(/\.[^.]+$/)[0]:''
    

    一行正则能搞定的事,不知道怎么这么麻烦。如果有提供test请列出来,不要让人去一个一个试。毕竟test写得好,也能帮助大家学习


  • 1

    一行正则搞定,题目没有test很不好。

    (/.+(\.[^\.]+)$/.match(filename) || ['',''])[1]
    

  • 0

    const extname = (filename) => {
      const extIndex = filename.lastIndexOf('.')
      if (extIndex<=0){
        return ''
      } else {
        return filename.slice(extIndex)
      }
    }
    

  • 0

    const extname = (filename) => {
      let tmp = filename.split('.');
      return (tmp.length>1 && tmp[0]!='') ? '.'+tmp[tmp.length-1] : ''
    }
    

  • 0

    const extname = (filename) => {
    /* TODO */
    var temp=filename.match(/.+(.\w+)$/i);
    return temp[1]?temp[1]:""

    }
    为什么不对啊


登录后回复
 

与 ScriptOJ 的连接断开,我们正在尝试重连,请耐心等待