js获取文件名或文件后缀名(扩展名)的几种方法

有时候我们需要通过含有文件名和后缀名的一个字符串中提取出该文件的文件名或文件后缀名(扩展名),可以通过如下几种方式进行截取。

例如文件名为: var fileName="12345.txt";

方式一:subtring()

用法参考博文 【js截取字符串subString()方法】 js截取字符串subString()方法_js 如何使用substring()截取字符串?-CSDN博客

使用subtring() 截取字符串,对于文件名中会出现多个点的很有用,从最后一个点的地方截取。

源代码

var fileName="12345.txt";

// 获取后缀名和点
var suffix = fileName.substring(fileName.lastIndexOf("."));//.txt
console.log(suffix)

// 只获取后缀名
var suffixName = fileName.substring(fileName.lastIndexOf(".")+1);//txt
console.log(suffixName)

// 获取文件名
var name = fileName.substring(0, fileName.lastIndexOf("."));//12345
console.log(name)

运行结果

方式二:substr()

同subtring()的字符串截取

源代码

var fileName="12345.txt";

// 获取后缀名和点
var suffix = fileName.substr(fileName.lastIndexOf("."));//.txt
console.log(suffix)

// 只获取后缀名
var suffixName = fileName.substr(fileName.lastIndexOf(".")+1);//txt
console.log(suffixName)

// 获取文件名
var name = fileName.substr(0, fileName.lastIndexOf("."));//12345
console.log(name)

运行结果

方式三:正则

使用正则,对只会出现一个点的适用:

源代码

var fileName="12345.txt";

// 获取后缀名和点
var suffix = fileName.match(/.[^.]+$/)[0];//.txt
console.log(suffix)

// 只获取后缀名
var suffixName = fileName.match(/[^.]+$/)[0];//txt
console.log(suffixName)

// 获取文件名
var name = fileName.match(/^[^.]+/)[0];//12345
console.log(name)

运行结果

当文件名中出现2个点的情况下,会出现异常

源代码

var fileName="12345.txt.zip";

// 获取后缀名和点
var suffix = fileName.match(/.[^.]+$/)[0];//.zip
console.log(suffix)

// 只获取后缀名
var suffixName = fileName.match(/[^.]+$/)[0];//zip
console.log(suffixName)

// 获取文件名
var name = fileName.match(/^[^.]+/)[0];//12345
console.log(name)

运行结果

方式四:转数组

数组方法可以参考博文 【js数组和字符串之间的转换方式以及数组的一些方法】: js数组和字符串之间的转换方式以及数组的一些方法-CSDN博客

对只会出现一个点的适用:

源代码

var fileName="12345.txt";

// 获取后缀名和点
var suffix = '.'+fileName.split('.').pop();//.txt
console.log(suffix)

// 只获取后缀名
var suffixName = fileName.split('.').pop();//txt
console.log(suffixName)

// 获取文件名
var name = fileName.split('.').shift();//12345
console.log(name)

运行结果

当文件名中出现2个点的情况下,会出现异常

源代码

var fileName="12345.txt.zip";

// 获取后缀名和点
var suffix = '.'+fileName.split('.').pop();//.zip
console.log(suffix)

// 只获取后缀名
var suffixName = fileName.split('.').pop();//zip
console.log(suffixName)

// 获取文件名
var name = fileName.split('.').shift();//12345
console.log(name)

运行结果

相关推荐

  1. Golang获取文件名扩展名/后缀

    2024-02-06 23:52:01       26 阅读
  2. js 获取元素宽高方法

    2024-02-06 23:52:01       52 阅读
  3. C# 通过Path获取后缀文件,目录等

    2024-02-06 23:52:01       36 阅读
  4. linux修改文件方法有哪些

    2024-02-06 23:52:01       48 阅读
  5. Linux下修改文件方法

    2024-02-06 23:52:01       62 阅读
  6. [python日常]获取指定文件夹下,指定后缀文件

    2024-02-06 23:52:01       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-06 23:52:01       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-06 23:52:01       97 阅读
  3. 在Django里面运行非项目文件

    2024-02-06 23:52:01       78 阅读
  4. Python语言-面向对象

    2024-02-06 23:52:01       88 阅读

热门阅读

  1. TCP和UDP相关问题(重点)(2)

    2024-02-06 23:52:01       50 阅读
  2. 配合后端-开发工具(在线)

    2024-02-06 23:52:01       54 阅读
  3. pnpm + vite 从外网迁移到内网环境开发

    2024-02-06 23:52:01       60 阅读
  4. Git学习笔记-- amend 详解

    2024-02-06 23:52:01       46 阅读
  5. 计算机网络相关题目及答案(第一章)

    2024-02-06 23:52:01       53 阅读
  6. 计算机网络相关题目及答案(第二章)

    2024-02-06 23:52:01       47 阅读
  7. 浅谈null和undefined的异同

    2024-02-06 23:52:01       59 阅读
  8. 非springboot 使用aop 切面

    2024-02-06 23:52:01       57 阅读
  9. C语言——S/顺序表专题

    2024-02-06 23:52:01       51 阅读
  10. SpringMVC-请求

    2024-02-06 23:52:01       54 阅读
  11. Vue动态组件<component>传递变量

    2024-02-06 23:52:01       54 阅读