/** * 如果链接是相对协议URL,则自动补全 Protocol */ export const attachUrlProtocol = (url: string) => { if (url.startsWith('//')) { return `${location.protocol}${url}`; } return url; }; /** * 获取链接中的文件名 * 如果获取失败,使用链接自身作为兜底 */ export const getBasename = (url: string) => { try { const { pathname } = new URL(attachUrlProtocol(url)); const basename = pathname.split('/').pop(); if (basename) return basename; } catch { /* empty */ } }; /** 获取文件格式,不包含. */ export const getExtname = (url: string) => { const basename = getBasename(url); return basename?.split('.').pop()?.toLowerCase(); };