Javascript 使用正则表达式替换Base64String中的URI前缀
我正在使用下载,有一些照片URI数据应该由下载 照片URI如下所示:Javascript 使用正则表达式替换Base64String中的URI前缀,javascript,regex,jszip,Javascript,Regex,Jszip,我正在使用下载,有一些照片URI数据应该由下载 照片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
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~循环的简单的正则表达式
有什么建议吗?提前谢谢。您可以试试这个
^.*base64,(?=\/)
解释
-锚定到字符串的开头^
-将匹配除换行符以外的任何字符零次或更长时间。(贪婪模式)*
- base64,
base64,`-将匹配
-正向前瞻将匹配(?=\/)
/
你可以使用这个
*(?=\/)
@CodeManiac你能提供一个详细的陈述吗?是的,当然可以添加这个作为答案并详细解释谢谢。我是这样做的<代码>str=photouri.replace(/^.*base64,(?=\/)/,“”)代码>@RobJS总是乐于助人:)