Как убрать лишнее до и после символов кодирования в массиве с картинкой в base64

Рейтинг: 0Ответов: 2Опубликовано: 29.01.2023

Есть вот такая конструкция, содержащая картинку в base 64.

[{"type":"image/jpeg","id":"uppy-refugee/jpg-1e-image/jpeg-103345-1674929741615","data":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEBLAEsAAD/7QA6UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAB4cAlAACHJhbnBsZXR0HAJuAAxHZXR0eSBJbWFn...671zne4YcbDme7M1JuD/VcEBLG9K7pT/EwvC3O39za7T6bfRTYy0z//2Q==","meta":{"relativePath":null,"name":"refugee.jpg","type":"image/jpeg"},"name":"refugee.jpg","size":103345,"dataFormat":"Base64"}]

Мне нужно убрать все лишнее: Все что расположено до "data:image и после ","meta":{"relativePath":null,"name":"refugee.jpg","type":"image/jpeg"},"name":"refugee.jpg","size":103345,"dataFormat":"Base64"}]

Как это можно сделать? Возможно с помощью regexp replace, но мне сложно составить подобный запрос.

Ответы

▲ 1Принят

Регулярные выражения тут лишнее.

У вас строка - это очень похоже на JSON. Возможно вы и получаете это как массив объектов, но потом "превращаете" это в строку.

Но предположим, что исходные данные, это строка.

Тогда

var str = '[{"type":"image/jpeg","id":"uppy-refugee/jpg-1e-image/jpeg-103345-1674929741615","data":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEBLAEsAAD/7QA6UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAB4cAlAACHJhbnBsZXR0HAJuAAxHZXR0eSBJbWFn...671zne4YcbDme7M1JuD/VcEBLG9K7pT/EwvC3O39za7T6bfRTYy0z//2Q==","meta":{"relativePath":null,"name":"refugee.jpg","type":"image/jpeg"},"name":"refugee.jpg","size":103345,"dataFormat":"Base64"}]';
console.log(str);
var obj = JSON.parse(str);
console.log(obj);
var img = obj[0].data;
console.log(img);
В obj в результате получаем массив объектов. Правда там только один элемент.

А в img будет та строка, которая вам нужна.

▲ 1

Можно вот так достать эти данные:

const arr = [{"type":"image/jpeg","id":"uppy-refugee/jpg-1e-image/jpeg-103345-1674929741615","data":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEBLAEsAAD/7QA6UGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAAB4cAlAACHJhbnBsZXR0HAJuAAxHZXR0eSBJbWFn...671zne4YcbDme7M1JuD/VcEBLG9K7pT/EwvC3O39za7T6bfRTYy0z//2Q==","meta":{"relativePath":null,"name":"refugee.jpg","type":"image/jpeg"},"name":"refugee.jpg","size":103345,"dataFormat":"Base64"}];

console.log(arr[0].data);