zoukankan      html  css  js  c++  java
  • 截取文件的扩展名

     // 截取文件名称中的扩展名
            // 例如     index.html   1.jpg
            // 扩展名是  html         jpg

            // 友情提示:为什么不要点
            // 截取扩展名,往往是为了做验证判断
            // 验证扩展名是否符合规定的规范
            // 例如上传图片,往往限制图片类型是 jpg的图片
            // 实现的方法,就是截取上传文件的扩展名,判断是否是规定的扩展名
            // 如果包括 点,实际上这个验证的第一位是无意义的验证
            // 为了提高验证效率,往往是不需要这个点的


            // 如何获取扩展名
            // 方法有很多,掌握一个就够了

            // 正常人的方法
            // 例如文件名是  abc.def.hig.jpg  文件命中也可以包含点
            // 实际上扩展名是 最后一个点之后的内容

            // 确定最后一个点:  lastIndexOf()

            // var fileName = '123.456.789.png';

            // 1,获取最后一个点的索引下标
            // var num = fileName.lastIndexOf('.');

            // 2,实际截取,不需要点,需要的是,点下一个位置开始截取
            // 在当前num基础上+1 是下一个字符的索引
            // 也就是扩展名第一个字符的索引
            // num = num+1;

            // 3,从这个字符开始,截取到文件名最后一个字符
            // 从第一个扩展名位置的索引下标开始截取,截取至文件名的最后一个字符
            // substr 和 substring 都可以
            // var ext = fileName.substr(num);

            // 可以将上述代码写成一行

            var fileName = '123.456.789.png';
            var ext = fileName.substr(fileName.lastIndexOf('.')+1);

            console.log(ext);

            // 方法2,
            // 将字符串按照 点 间隔,转化为数组
            // 数组前面的单元不管,最后一个单元,一定存储的是扩展名
            // 使用 pop() 方法,删除 数组的最后一个单元
            // 返回值就是删除单元存储的数据,也就是扩展名

            var fileName = '123.456.789.png';
            // 将字符串,按照点分割为数组,最后一个单元,存储的是扩展名
            var arr = fileName.split('.');
            // 使用pop方法,删除最后一个单元,执行结果,就是删除单元存储的数据,也就是扩展名
            var ext = arr.pop();

            console.log(ext);
     // 将规定的字符串类型,写成一个数组
            // 可以判断扩展名是否是数组的数据
            // 然后可以判断,扩展名是否是数组的数据
            // 如果是,证明扩展名符合规范,如果不是,扩展名是不符合规范的
            // indexOf()查询,如果返回值是 -1 证明扩展名不是数组的数据,就不符合规范
            

            var fileName = '123.456.789.JPG';

            // 获取扩展名
            var ext =  fileName.substr( fileName.lastIndexOf('.') +1 );

            // 统一大小写
            ext = ext.toLowerCase();

            // 模拟定义一个数组,存储符合规范的扩展名
            // 要求必须是图片
            // 这个数组,实际上一般是数据库查询的结果
            var fileExtArr = ['jpg' , 'jpeg' , 'png' , 'gif'];

            // 验证判断,扩展名是否是数组的数据

            if(fileExtArr.indexOf(ext) === -1 ){
                // 如果查询结果是 -1 证明 数组中没有这个数据,证明扩展名不符合规范的
                window.alert('您上传文件,不符合规范,请您重新选择文件');
            }else{
                window.alert('您上传文件,符合规范');
            }
    右侧打赏一下 代码改变世界一块二块也是爱
  • 相关阅读:
    BlockingQueue 原理 分析
    java引用 强引用,软引用,弱引用
    actomic cas无锁操作。
    MongoDB库设计原则及实践
    spring事物传播机制 事物隔离级别
    Hive UDAF介绍与开发
    [技术学习]js接口继承
    [技术学习]js继承
    [技术学习]正则表达式分析
    [技术学习]js正则表达式汇总
  • 原文地址:https://www.cnblogs.com/ht955/p/14045263.html
Copyright © 2011-2022 走看看