繁体   English   中英

从生成的 base64 字符串中删除 data:image/png;base64

[英]remove data:image/png;base64, from generated base64 string

export const convertFileToBase64 = file => {
  return new Promise((resolve, reject) => {
    const reader = new FileReader()

    reader.readAsDataURL(file)

    reader.onload = () => {
      if (reader.result) {
        resolve(reader.result)
      } else {
        reject(Error('Failed converting to base64'))
      }
    }
  })
}

我想不明白的是可以在不添加data:image/png;base64,情况下生成base 64 data:image/png;base64,在字符串的开头,也许有人说用户字符串替换方法,然后删除它,但我也在等待png文件、pdf 文件等。是否可以改进我的方法并将其删除?

如果我理解正确,您可以像这样使用regexreplace()来实现您的目标。

 const str1 = "data:image/png;base64,moredatablablabla" const str2 = "data:application/pdf;base64,datadatadatablabla" const regex = /data:.*base64,/ console.log(str1.replace(regex,"")) console.log(str2.replace(regex,""))

只需在逗号上拆分字符串并获取后面的部分。

const getDataPart = (dataUrl) => dataUrl.split(',', 1)[1];

console.log(getDataPart('data:image/png;base64,somebase64stuff'));

巧合的是,这适用于任何数据 url 编码,因为逗号是格式的必需部分,并且是将数据与其余部分分开的唯一部分。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM