使用 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 match
base64,`.
(?=\/)
- 正面前瞻将匹配 /
我正在与 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 match
base64,`. (?=\/)
- 正面前瞻将匹配/