Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用正则表达式替换Base64String中的URI前缀_Javascript_Regex_Jszip - Fatal编程技术网

Javascript 使用正则表达式替换Base64String中的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

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

照片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~循环的简单的正则表达式


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

您可以试试这个

^.*base64,(?=\/)
解释

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

你可以使用这个
*(?=\/)
@CodeManiac你能提供一个详细的陈述吗?是的,当然可以添加这个作为答案并详细解释谢谢。我是这样做的<代码>str=photouri.replace(/^.*base64,(?=\/)/,“”)@RobJS总是乐于助人:)