如何从Javascript FileReader Base 64字符串中删除某些类型?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (108)

我的Javascript中有以下代码:

var reader = new FileReader();
reader.onloadend = function () {
    alert(reader.result);
};

它向我展示了下面的数据:

 data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAAAAABX3VL4AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gYSDCUgSze0AAAAAA5JREFUCNdjrGJgYmAAAAJ0AH4SDHVIAAAAAElFTkSuQmCC

我只想要逗号后的部分。我试着用reader.result.valuereader.result.valueOf()得到它,但都不能获取逗号后面base64字符串。第二个想法是简单地删除逗号和之前的所有内容,但我不知道如何做到这一点。

提问于
用户回答回答于
let reader: FileReader = new FileReader();

 reader.onloadend = (e) => {
    let base64String = reader.result.split(',').pop();
 };

let base64String = /,(.+)/.exec(reader.result)[1];
用户回答回答于

以下功能将得到你所需的结果:

var base64result = reader.result.split(',')[1];

这将字符串拆分为包含第一个项目(索引0)的字符串数组data:image/png;base64和包含base64编码数据的第二个项目。

另一个解决方案是找到逗号的索引,然后简单地切断前面的所有内容(包括逗号):

var base64result = reader.result.substr(reader.result.indexOf(',') + 1);

JSFiddle

扫码关注云+社区

领取腾讯云代金券