Как убрать лишнее до и после символов кодирования в массиве с картинкой в base64
Есть вот такая конструкция, содержащая картинку в 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, но мне сложно составить подобный запрос.
Ответы (2 шт):
Можно вот так достать эти данные:
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);
Регулярные выражения тут лишнее.
У вас строка - это очень похоже на 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);
А в img будет та строка, которая вам нужна.