javascript - 使用正则表达式从 Base64String 替换 URI 前缀
问题描述
我正在使用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,(?=\/)
解释
^
- 锚定到字符串的开头。.*
- 将匹配除换行符零次或多次以外的任何内容。(贪婪模式)。- 基64,
- Will match
基64,`。 (?=\/)
- 积极的前瞻将匹配/