js解析图片 base64 的扩展名

需求

在JavaScript中解析图片的base64数据并获取其扩展名(文件类型)

代码

以下是一种实现方法:

function getImageExtensionFromBase64(base64Data) {
  const regex = /^data:image\/(\w+);base64,/;  // 正则表达式匹配base64数据头部
  const matches = base64Data.match(regex);
  
  if (matches && matches.length === 2) {
    return matches[1];  // 返回第一个捕获组,即文件扩展名
  }
  
  return null;  // 未找到扩展名
}

// 示例用法
const base64ImageData = "data:image/png;base64,iVBORw0KGg...";  // 包含base64数据的字符串
const extension = getImageExtensionFromBase64(base64ImageData);
console.log(extension);  // 输出:png

上述代码中,getImageExtensionFromBase64函数接收一个包含base64数据的字符串,并使用正则表达式匹配该字符串的头部,提取文件扩展名。正则表达式/^data:image\/(\w+);base64,/用于匹配以"data:image/"开头,后跟文件扩展名,然后是";base64,"的字符串。其中\w+匹配一个或多个字母、数字或下划线字符。如果匹配成功,返回匹配结果的第一个捕获组(即文件扩展名),否则返回null表示未找到扩展名。

请注意,这种方法只适用于包含在base64数据中的图片。如果图片没有以"data:image/"开头的base64数据,或者没有明确的文件扩展名,那么无法从base64数据中确定其扩展名。在这种情况下,你可能需要其他的方式来获取图片的扩展名。

评论