【问题标题】:remove data:image/png;base64, from generated base64 string从生成的 base64 字符串中删除 data:image/png;base64
【发布时间】:2021-07-30 23:48:25
【问题描述】:
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,也许有人说用户字符串替换方法,然后将其删除,但我也在等待png文件, pdf文件等。是否可以改进我的方法并将其删除?

【问题讨论】:

  • 替换/data:.*base64,/怎么样?

标签: javascript


【解决方案1】:

如果我理解正确,您可以像这样使用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,""))

【讨论】:

    【解决方案2】:

    只需在逗号上拆分字符串,然后得到后面的部分。

    const getDataPart = (dataUrl) => dataUrl.split(',', 1)[1];
    
    console.log(getDataPart('data:image/png;base64,somebase64stuff'));
    

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

    【讨论】:

      猜你喜欢
      • 2015-08-14
      • 2012-12-20
      • 2023-03-06
      • 2015-12-23
      • 2018-06-29
      • 1970-01-01
      • 2015-07-29
      • 2014-02-14
      • 1970-01-01
      相关资源
      最近更新 更多