Замените префикс URI из Base64String, используя Regex - PullRequest
0 голосов
/ 11 декабря 2018

Я работаю с JSZip , и есть некоторые URI-данные фотографий, которые должны быть загружены FileSaver .

URI фото выглядит следующим образом:

photouri1 = 'data:image/jpeg;base64,/9a...';
photouri2 = 'data:image/png;base64,/9a...';

Как видите, существует 2 типа URI для фотографий.Поскольку zip.file api требует, чтобы данные были base64String, я должен заменить префикс URI пустой строкой следующим образом:

...
var base64Str1 = photouri1.replace('data:image/jpeg;base64,', '');
zip.file('image1', base64Str1, { base64: true });
var base64Str1 = photouri1.replace('data:image/png;base64,', '');
zip.file('image2', base64Str2, { base64: true });
zip.generateAsync({ type: 'blob' }).then(...)

Я хочу, чтобы операция замены могла выполняться одновременно ( пакетная операция ) с использованием простого регулярного выражения с for ~ loop.

Есть предложения?Заранее спасибо.

1 Ответ

0 голосов
/ 11 декабря 2018

Вы можете попробовать это

^.*base64,(?=\/)

Объяснение

  • ^ - Привязка к началу строки.
  • .* - будет соответствовать чему угодно, кроме символа новой строки, нуля или более времени. (Жадный режим).
  • base64, - Will match base64, `.
  • (?=\/) - ПоложительныйLookahead будет соответствовать /

Демо

...