我正在使用JSZip下载,有一些照片URI数据应该由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(...)
我希望替换操作可以使用带有for~loop的简单正则表达式一次完成(批处理操作(。
有什么建议吗?提前谢谢。
您可以尝试这个
^.*base64,(?=/)
解释
^
-锚定到字符串的开头.*
-将匹配除换行符之外的任何字符零次或更长时间。(贪婪模式(- base64,
- Will match
base64,` (?=/)
-正向前瞻将与/
匹配
演示