`
jdhh_hcm
  • 浏览: 11707 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

一道群友出的JS面试题:返回文件名的扩展名

 
阅读更多

以尽可能多的方法完成下面的函数,使之能够正确返回一个任意给定文件名的扩展名

        function getExtension(fileName){
                //请在此补充该函数



        }


        //函数用例1
        var fileName1 = "myPhoto.jpg";
        var extension1 = getExtension(fileName1);    // extension1 期望值 jpg


        //函数用例2
        var fileName2 = "my_project.latest.js";
        var extension2 = getExtension(fileName2);    // extension2 期望值 js

 

 

我给出的一些回答:

function getExtension(fileName){
        if(typeof(fileName)!="string") return "";
        var tmpArr = fileName.split(".");
        if(fileName=="" || tmpArr.length==1) return "";
        else return tmpArr.pop();
}

function getExtension1(fileName){
        if(typeof(fileName)!="string") return "";
        var reg = /\.(\w+)$/i; //匹配 .后面任意字符结尾(忽略大小写) 这个正则是请教 高人写的,我正则懂得少
        var tmpArr = reg.exec(fileName);
        if(tmpArr == null) return "";
        else return tmpArr[tmpArr.length-1];
}

function getExtension2(fileName){
        if(typeof(fileName)!="string") return "";
        return fileName.substring(fileName.lastIndexOf(".")+1,fileName.length);
}

alert(getExtension1("abc.ccc.js"));

 

 

也许这些不是全部的方法,只是把代码贴在这里,以作参考.

函数内的代码有些多是因为做了一些必要性的判断,防止不合乎格式的文件名字符串,应该可以单独提出来做一个函数,这样就没有必要每一个函数都来一次了.

 

分享到:
评论

相关推荐

    面试官:你可以用纯 CSS 判断鼠标进入的方向吗?

    在之前某一个前端技术群里,有一个群友说他面试的时候遇到了一个问题,就是面试官让他用纯 CSS 来实现一个根据鼠标移动位置觉得物体移动方向的 DEMO。 给出的初始结构如下: body { padding: 2em; text-align: ...

    群友苍穹分享的插件可以一键拾取.rar

    插件是为了扩展软件功能而设计的小型程序,它们能够为用户带来更便捷的工作流程和增强的性能。"群友苍穹分享的插件可以一键拾取"这个标题和描述暗示了一个特别的功能——一键拾取,这在3D建模软件中尤其有用,例如在...

    基于Lua语言的群友原创新月杀扩展包设计源码

    该项目是一款由群友独立开发的《新月杀》游戏扩展包,源代码包含331个文件,涵盖191个MP3音频文件、108个JPG图片文件、25个Lua脚本文件、3个Markdown文档、1个Git忽略文件、1个授权许可文件、1个QML文件、1个Python...

    MOSS精英峰会2008暨群友见面会讲师PPT资料

    _________________________________________ <br>Umboy:致力与信息安全与信息移动应用的研究。 MSN: umboy888#hotmail.com<br>QQ:728634<br>BLOG:http://blog.csdn.net/umboy<br>BBS: ...

    群友分享的FLEX工作流设计器(含源码)

    《深入理解FLEX工作流设计器:源于群友的开源项目》 在当今信息化时代,工作流管理系统已经成为企业提升效率、优化业务流程的关键工具。而FLEX作为一种强大的富互联网应用程序(RIA)开发框架,以其丰富的图形界面...

    基于Mirai及mirai-api-http制作的QQ学习群友说话机器人。.zip

    mirai-api-http是Mirai框架的一个扩展,它提供了一个HTTP API接口,允许开发者使用非Java语言(如Python、JavaScript等)与Mirai进行交互。通过HTTP API,你可以远程控制机器人,发送和接收消息,管理群组成员,...

    2020年ccpc网络赛的题解群友分享的故免费下载

    - **题目概述**:此题涉及Bluestein算法,这是一种快速傅里叶变换的扩展算法,用于处理长度不是2的幂的情况。 - **解决方案**:原文中提到了Bluestein算法的基本原理,即通过填充0的方式将任意长度的序列转换成2的幂...

    屏蔽QQ群群消息后,怎么单独接收指定群友信息和关注话题信息.docx

    为了解决这个问题,我们可以选择屏蔽QQ群的消息,但同时又希望能够接收到某些特定群友的信息或者关注到特定话题。以下是如何在屏蔽QQ群群消息后,单独接收指定群友信息和关注话题信息的详细步骤。 首先,当你想要...

    idea插件包.rar

    【压缩包子文件的文件名称列表】:虽然具体文件名未给出,但我们可以推断这个压缩包可能包括了多个扩展名为.jar或.zip的插件文件,这些文件可以是独立的插件,也可以是包含多个插件的集合。常见的IntelliJ IDEA插件...

    QQ群中单独接收指定群友信息设置.docx

    为了帮助用户在屏蔽群消息的同时,不错过重要信息,QQ提供了“单独接收指定群友信息”的设置功能,让用户能够定制化地管理群消息。 首先,要启用这个功能,你需要在已经屏蔽的QQ群上右键点击,选择“群消息设置”,...

    BladeX环境部署手册(群友刚好遇见你提供).zip

    这份"BladeX环境部署手册"由群友“刚好遇见你”提供,旨在帮助开发者顺利地设置和运行BladeX项目。下面,我们将详细讨论BladeX环境部署的相关知识点。 1. **BladeX简介**:BladeX是一个基于Java开发的微服务框架,...

    【第一期】向群友推荐的书单

    【第一期】向群友推荐的书单

    【最新版】社群圈子通讯录v1.4.3源码-圈子拓展助手

    帮助行业圈子或微信群友认识彼此,深化关系,加强合作。 简单和微信好友一起传播。快速收集通讯录,方便组织活动.群发消息、了解群友近况! 圈子介绍 结识圈内精英大咖产品服务一应俱全项目合作互利双赢 在这样一...

    群友25元买SM2258XT万能包v2-一个工具开几乎所有制程

    标签“软件/插件”表明这个资源主要由软件组成,可能是独立的应用程序,也可能是需要安装在其他软件上的插件,用于扩展或增强原有软件的功能。 压缩包内的文件名“SM2258XT万能包v2-一个工具开几乎所有制程(Avidia-...

    微信群主年终总结.pdf

    从给出的“微信群主年终总结”内容来看,我们可以提炼出以下几个关键知识点: 1. **群文化与理念建设**:微信群主遵循“有空必来,有来必言,有言必留,有留必看”的群组理念,强调积极参与和互动,以及“知无不言...

    Java + Netty 实现的高并发高可用MQTT服务broker,轻松支持10万并发(有群友实现了130万在线).zip

    Java + Netty 实现的高并发高可用MQTT服务broker,轻松支持10万并发(有群友实现了130万在线).zip 功能说明: 参考MQTT3.1.1规范实现 完整的QoS服务质量等级实现 遗嘱消息, 保留消息及消息分发重试 心跳机制 MQTT连接...

Global site tag (gtag.js) - Google Analytics