我的Javascript中有以下代码:
var reader = new FileReader();
reader.onloadend = function () {
alert(reader.result);
};
这向我显示了以下数据:
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAAAAABX3VL4AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gYSDCUgSze0AAAAAA5JREFUCNdjrGJgYmAAAAJ0AH4SDHVIAAAAAElFTkSuQmCC
问题是我只想要逗号后面的那部分。我试着从reader.result.value
,reader.result.valueOf()
和其他一些组合中获取它,但是找不到正确的方法来只获取从逗号后面开始的base64字符串。所以第二个想法是简单地去掉逗号和之前的所有内容,但我不确定如何做到这一点。
有没有人知道该怎么做?欢迎所有提示!
发布于 2014-06-18 23:23:34
以下函数将会达到您的预期效果:
var base64result = reader.result.split(',')[1];
这会将字符串拆分为字符串数组,第一项(索引0)包含data:image/png;base64
,第二项(索引1)包含base64编码的数据。
另一种解决方案是找到逗号的索引,然后简单地删除之前的所有内容,包括逗号:
var base64result = reader.result.substr(reader.result.indexOf(',') + 1);
参见JSFiddle。
发布于 2017-02-09 16:56:25
let reader: FileReader = new FileReader();
reader.onloadend = (e) => {
let base64String = reader.result.split(',').pop();
};
或
let base64String = /,(.+)/.exec(reader.result)[1];
发布于 2021-10-25 13:48:17
你也可以这样做
var base64=reader.result.replace(/^data:image\/\w+;base64,/, "");
https://stackoverflow.com/questions/24289182
复制相似问题