Javascriptに次のコードがあります。
_var reader = new FileReader();
reader.onloadend = function () {
alert(reader.result);
};
_
これにより、次のデータが表示されます。
_ data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAIAAAACCAAAAABX3VL4AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gYSDCUgSze0AAAAAA5JREFUCNdjrGJgYmAAAAJ0AH4SDHVIAAAAAElFTkSuQmCC
_
問題は、コンマの後の部分だけが必要なことです。 _reader.result.value
_、reader.result.valueOf()
およびその他の組み合わせから取得しようとしましたが、コンマの後から始まるbase64文字列を取得するための正しい組み合わせが見つかりません。 2番目のアイデアは、カンマとその前のものをすべて取り除くことです。しかし、私はそれをどうやってやるかわからないのです。
誰もこれを達成する方法を知っていますか?すべてのヒントを歓迎します!
次の関数は、目的の結果を達成します。
var base64result = reader.result.split(',')[1];
これは、data:image/png;base64
を含む最初の項目(インデックス0)とbase64エンコードデータを含む2番目の項目(インデックス1)を持つ文字列の配列に文字列を分割します。
別の解決策は、カンマのインデックスを見つけてから、カンマを含む前のすべてを単純に切り捨てることです。
var base64result = reader.result.substr(reader.result.indexOf(',') + 1);
JSFiddle を参照してください。
let reader: FileReader = new FileReader();
reader.onloadend = (e) => {
let base64String = reader.result.split(',').pop();
};
または
let base64String = /,(.+)/.exec(reader.result)[1];