读取Angular 6中文件的扩展名

时间:2019-03-15 07:16:44

标签: angular angular6

我正在尝试读取来自使用Angular 6中的Web服务的服务器文件的扩展名。

我能够使用myFile.png方法和filename.split('.').pop();方法读取文件filename.slice((filename.lastIndexOf(".") - 1 >>> 0) + 2);的扩展名。

但是我的问题是来自服务器的文件链接的长度非常长,并且它是可下载的链接,因此我们可以从该链接下载实际文件。

示例链接格式如下: http://myserver.data.com/data/service/auth/yt.content.ContentHttp/viewContent/myfile.png?u8&HttpOperationItem=yt.content.ApplicationData%3A342376&ofn=myfile.png&ContentHolder=yt.flow.forum.data%3A342370&forceDownload=true

在上面的链接中,我想读取文件(?)之前的扩展名。并且操作员(?)在链接中只出现一次。这样我就可以确定文件的扩展名恰好位于(?)运算符之前。

任何人都可以使用Angular 6帮助获取文件扩展名。

2 个答案:

答案 0 :(得分:0)

您可以使用正则表达式。如:viewContent\/\w+.([\w\d]+)

以下是如何使用正则表达式的示例

const regex = /viewContent\/\w+.([\w\d]+)/gm;
const str = `http://myserver.data.com/data/service/auth/yt.content.ContentHttp/viewContent/myfile.png?u8&HttpOperationItem=yt.content.ApplicationData%3A342376&ofn=myfile.png&ContentHolder=yt.flow.forum.data%3A342370&forceDownload=true`;

regex.exec(str)) !== null

答案 1 :(得分:0)

正如您所说,?只会出现一次,因此可以用?拆分,然后选择第一个元素,然后再次用.拆分并获取最后一个元素。

filename.split('?')[0].split('.').pop();