首页 > 解决方案 > 如何仅从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 中完成这项工作的任何想法?

标签: javascriptstringsplitfilepath

解决方案


您可以使用 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"


推荐阅读