如何从Javascript FileReader base64字符串中剥离类型?

如何从Javascript FileReader base64字符串中剥离类型?,javascript,base64,strip,Javascript,Base64,Strip,我的Javascript中有以下代码: var reader = new FileReader(); reader.onloadend = function () { alert(reader.result); }; 这显示了以下数据: data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAAAAABX3VL4AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gYSDCUgSze0AAAAAA5

我的Javascript中有以下代码:

var reader = new FileReader();
reader.onloadend = function () {
    alert(reader.result);
};
这显示了以下数据:

 data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAAAAABX3VL4AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gYSDCUgSze0AAAAAA5JREFUCNdjrGJgYmAAAAJ0AH4SDHVIAAAAAElFTkSuQmCC
问题是我只想要逗号后面的部分。我试着从
reader.result.value
reader.result.valueOf()
和其他一些组合中获取它,但找不到正确的组合来获取从逗号后开始的base64字符串。所以第二个想法是简单地去掉逗号和之前的所有内容,但我有点不确定怎么做


有人知道怎么做吗?欢迎所有提示

以下功能将达到您想要的效果:

var base64result = reader.result.split(',')[1];
这会将字符串拆分为一个字符串数组,第一项(索引0)包含
数据:image/png;base64和包含base64编码数据的第二项(索引1)

另一种解决方案是找到逗号的索引,然后简单地删除前面的所有内容,包括逗号:

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


您可以尝试使用拆分数据;base64


var base64result=reader.result.split(',')[1]
or
var base64result=reader.result.substr(reader.result.indexOf(',')+1)我们是否确定base64字符串中不会出现逗号?如果是的话,很好的解决方案。是的,我们肯定知道。Base64编码使用字符
[a-z,a-z,0-9,+,/]
进行编码<代码>=
也用于填充。看,太好了。非常感谢您的解释。谢谢!在阅读此答案之前,我使用了以下方法:
var base64result=reader.result.match(/^data:.+\/(.+);base64,(.*)$/)[2]
,这是一种非常慢的方法。我猜
RegEx
操作的复杂性要比
String复杂得多。split
哪一个更快,会先分割搜索文件还是退出?
let reader: FileReader = new FileReader();

 reader.onloadend = (e) => {
    let base64String = reader.result.split(',').pop();
 };
let base64String = /,(.+)/.exec(reader.result)[1];
// In here you are getting the data type. Ex - png, jpg, jpeg, etc. You can use this for any further purposes.
var dataType = reader.result.split(';base64,')[1];

// In here you are getting the base64 string and you can use this for your purpose.
var base64result = reader.result.split(';base64,')[1];