使用 Regex 替换 Base64String 中的 URI 前缀

Replace URI prefix from Base64String using Regex

我正在与 JSZip download and there are some photo URI data which should be downloaded by FileSaver 合作。

照片 URI 如下所示:

photouri1 = 'data:image/jpeg;base64,/9a...';
photouri2 = 'data:image/png;base64,/9a...';

如您所见,有两种类型的照片 URI。由于 zip.file api 要求数据是 base64String,所以我应该将 URI 前缀替换为空字符串,如下所示:

...
var base64Str1 = photouri1.replace('data:image/jpeg;base64,', '');
zip.file('image1', base64Str1, { base64: true });
var base64Str1 = photouri1.replace('data:image/png;base64,', '');
zip.file('image2', base64Str2, { base64: true });
zip.generateAsync({ type: 'blob' }).then(...)

我希望替换操作可以使用简单的正则表达式一次完成(批量操作) =28=] 与 for~loop.

有什么建议吗?提前致谢。

你可以试试这个

^.*base64,(?=\/)

Explanation

  • ^ - 字符串开头的锚点。
  • .* - 将匹配除换行符之外的任何内容零次或多次。(贪婪模式)。
  • base64,- Will matchbase64,`.
  • (?=\/) - 正面前瞻将匹配 /

Demo