利用lastIndexOf() 获取文件后缀名

本文介绍了JavaScript中的lastIndexOf()方法,该方法用于寻找指定值在字符串中最后一次出现的位置,并从特定索引开始向左查找。文章还提供了一个实用示例,展示了如何使用此方法来获取文件的后缀名。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

lastIndexOf() 方法
返回指定值在调用该方法的字符串中最后出现的位置,如果没找到则返回 -1。从该字符串的后面向前查找,从 fromIndex 处开始。
字符串中的字符被从左向右索引。首字符的索引(index)是 0,最后一个字符的索引是 stringName.length - 1。


"aa.txt".lastIndexOf(".");//2


[url]https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/String/lastIndexOf[/url]

获取文件后缀名函数:

function catchtype(source){
var typestr = source.toLowerCase().substring(source.lastIndexOf('.')+1);
return typestr;
}
catchtype("aa.txt");//"txt"
### 获取MultipartFile对象的后缀Java中,可以通过`MultipartFile`接口提供的方法来获取上传文件的原始称,并从中提取文件的后缀。以下是具体实现方式: #### 方法一:基于字符串操作 可以利用`getOriginalFilename()`方法获取文件的原始称,然后通过字符串分割的方式提取后缀。 ```java public static String getSuffix(MultipartFile file) { if (file == null || file.isEmpty()) { return ""; } String fileName = file.getOriginalFilename(); if (fileName != null && fileName.contains(".")) { return fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase(); // 提取后缀并转为小写 } return ""; } ``` 上述代码逻辑如下: - 验证`MultipartFile`对象是否为空[^2]。 - 调用`getOriginalFilename()`方法获取文件的原始称[^3]。 - 使用`String`类的`lastIndexOf(".")`定位最后一个`.`的位置,并截取出其后的部分作为文件后缀。 #### 方法二:正则表达式匹配 如果希望更灵活地处理文件中的特殊字符,可以采用正则表达式进行匹配。 ```java import java.util.regex.Matcher; import java.util.regex.Pattern; public static String getSuffixByRegex(MultipartFile file) { if (file == null || file.isEmpty()) { return ""; } String fileName = file.getOriginalFilename(); Pattern pattern = Pattern.compile("\\.(\\w+)$"); Matcher matcher = pattern.matcher(fileName); if (matcher.find()) { return matcher.group(1).toLowerCase(); // 返回第一个捕获组的内容(即后缀) } return ""; } ``` 此方法的优点在于能够更好地应对复杂的文件命情况,例如带有多个`.`的情况。 #### 示例应用 假设有一个控制器接收前端传来的文件列表`List<MultipartFile>`,可以在服务层调用上述方法逐一获取每个文件的后缀。 ```java @PostMapping("/uploadFiles") public ResponseEntity<String> uploadFiles(@RequestParam("files") List<MultipartFile> files) { StringBuilder result = new StringBuilder(); for (MultipartFile file : files) { if (!file.isEmpty()) { String suffix = getSuffix(file); // 或者使用 getSuffixByRegex(file) result.append("File ").append(file.getName()).append(" has suffix: ").append(suffix).append("\n"); } } return ResponseEntity.ok(result.toString()); } ``` 以上代码展示了如何遍历`List<MultipartFile>`类型的参数,并逐个打印每份文件的后缀[^1]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值