【问题标题】:Replace URI prefix from Base64String using Regex使用正则表达式从 Base64String 替换 URI 前缀
【发布时间】:2018-12-11 09:19:07
【问题描述】:

我正在使用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 的简单 regex 一次完成(批量操作)。

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

【问题讨论】:

  • 你可以用这个.*(?=\/)
  • @CodeManiac 你能提供一份详细的说明吗?
  • 是的,确实添加了这个作为答案并附有详细解释

标签: javascript regex jszip


【解决方案1】:

你可以试试这个

^.*base64,(?=\/)

解释

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

Demo

【讨论】:

  • 非常感谢。我是这样做的。 str = photouri.replace(/^.*base64,(?=\/)/, '');
  • @RobJS 总是乐于提供帮助 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-06-28
  • 1970-01-01
  • 2014-03-29
  • 1970-01-01
  • 2019-01-24
  • 2015-03-21
  • 1970-01-01
相关资源
最近更新 更多