赞助
 // 截取文件名称中的扩展名
        // 例如     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('您上传文件,符合规范');
        }
posted on 2020-11-26 23:09  Tsunami黄嵩粟  阅读(303)  评论(0编辑  收藏  举报