javascript - 如何仅从Javascript中的完整路径中提取文件名+扩展名?
问题描述
从 API 返回的文件路径如下所示:
https://my-bucket.s3.amazonaws.com/media/private/files/Corp%20Data%20Collection.pdf?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA6FUWELJHGJHGLIJI4Hss2F20191204%2Fca-central-1%2Fs3%2Faws4_request&X-Amz-Date=20191204T185901Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=2a227681a180d8785be4edfa9e15dkjhsdkjs8796937182d9c33fc12a0e52affe97
我想提取文件名和扩展名,并替换任何 ASCII 表达式,如 %20。所以返回的最终结果应该是:
Corp_Data_Collection.pdf
关于如何在 Javascript 中完成这项工作的任何想法?
解决方案
您可以使用 JavaScript 的URL
构造函数从 URL 中获取路径名,如下所示:
const url = new URL("https://yourlongurl.com/something/yourfile.pdf");
const pathname = url.pathname;
然后,您可以从路径名中提取它的最后一部分,substring
如下所示:
const filename = unescape(pathname.substring(pathname.lastIndexOf('/') + 1));
这将返回"yourfile.pdf"
推荐阅读
- android - Flutter:文本搜索中的 Syncfusion_flutter_pdfviewer 为某些 pdf 提供了错误的结果
- reactjs - 对外部 API 的 HTTP 请求适用于 .NET,但不适用于 React(CORS 问题)
- javascript - 从 SQL 服务器中选择函数
- flutter - 由于呈现问题,横幅广告未显示在 Listview.separated 中
- sql - regexp_replace 可能是排序规则问题
- wordpress - 当存在 save_post 操作时,我无法更新我的页面是 functions.php
- sql - How to create sql table that changes dynamically the order of the columns based on current date/month?
- python - 外键相关,Django
- c# - 在 .net 中从 EPPlus 迁移到 NPOI
- dart - 如何在 Dart 对象中使用括号表示法?