javascript 如何从一串散列值中提取英语单词?

rbl8hiat  于 2023-02-18  发布在  Java
关注(0)|答案(2)|浏览(129)

我的web应用程序使用google firestore来上传文档,但是firestore对文档名进行了哈希处理,我想提取并使用这个名称,格式化后的字符串如下所示。

const url = "https://storage.googleapis.com/test/agency-register-crrRhaUSWopn4QRc2M54MX.png";
const url = "https://storage.googleapis.com/test/agency-register-documents-crrRhaUSWopn4QRc2M54MX.png";
const url = "https://storage.googleapis.com/test/agencyRegister-crrRhaUSWopn4QRc2M54MX.png";
const url = "https://storage.googleapis.com/test/agency-crrRhaUSWopn4QRc2M54MX.png";

正如你所看到的,在test/之后,文件名排在第一位,在文件类型之前,有一个hash,最后是文件类型,这里是.png。我如何从这些字符串中得到英语单词(agency-register,agency-register-documents,agencyRegister,et.)或文件名呢?我正在尝试创建一个动态结构。
我不懂逻辑,所以我什么也没做。

e7arh2l6

e7arh2l61#

听起来像是正则表达式的工作。
例如:

let pattern = /https:\/\/storage\.googleapis\.com\/test\/([\w-]*)-\w*.png/;
let url = "https://storage.googleapis.com/test/agency-register-crrRhaUSWopn4QRc2M54MX.png";

let name = url.match(pattern)[1];

要了解它的功能,请https://regex101.com/r/7TcJuI/1

rqcrx0a6

rqcrx0a62#

如果你不想用正则表达式来解。
你可以按照评论中建议的方法去做。

const url = "https://storage.googleapis.com/test/agencyRegister-crrRhaUSWopn4QRc2M54MX.png";
const parts = url.split("test/")[1].split("-");
parts.pop();
const result = parts.join("-");
console.log(result);

相关问题