使用Regex替换Base64String中的URI前缀



我正在使用JSZip下载,有一些照片URI数据应该由FileSaver下载。

照片URI如下所示:

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

正如您所看到的,有两种类型的照片URI。由于zip.fileAPI要求数据为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(...)

我希望替换操作可以使用带有for~loop的简单正则表达式一次完成(批处理操作(。

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

您可以尝试这个

^.*base64,(?=/)

解释

  • ^-锚定到字符串的开头
  • .*-将匹配除换行符之外的任何字符零次或更长时间。(贪婪模式(
  • base64,- Will matchbase64,`
  • (?=/)-正向前瞻将与/匹配

演示

最新更新