如何从 Javascript 中任何图像类型的 base64 字符串中剥离数据:图像部分

新手上路,请多包涵

我目前正在执行以下操作来解码 Javascript 中的 base64 图像:

     var strImage = "";
    strImage = strToReplace.replace("data:image/jpeg;base64,", "");
    strImage = strToReplace.replace("data:image/png;base64,", "");
    strImage = strToReplace.replace("data:image/gif;base64,", "");
    strImage = strToReplace.replace("data:image/bmp;base64,", "");

正如您在上面看到的,我们接受四种最标准的图像类型(jpeg、png、gif、bmp);

然而,其中一些图像非常大,用替换扫描每张图像 4-5 次似乎是一种可怕的浪费,而且效率极低。

有没有一种方法可以可靠地一次性去除 base64 图像字符串的数据:图像部分?

也许通过检测字符串中的第一个逗号?

提前致谢。

原文由 Sergio Domínguez 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

您可以使用正则表达式:

 var strImage = strToReplace.replace(/^data:image\/[a-z]+;base64,/, "");


  • ^ 表示 在字符串的开头
  • data:image 表示 数据:图像
  • \/ 表示 /
  • [a-z]+ 表示 a和z之间的一个或多个字符
  • ;base64, 表示 ;base64,

原文由 Nicolò 发布,翻译遵循 CC BY-SA 3.0 许可协议

var solution = string.split("base64,")[1];

在“base64”处拆分变量字符串,然后取第二部分。

原文由 Jonas Wilms 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题