首页 >社区问答列表 >javascript - js怎样判断一个图片是不是base64

javascript - js怎样判断一个图片是不是base64

多个img标签,每个标签的src都不一样,

现在需要分别对src为base64编码的和非base64的图片做不同的处理,

javascript应该如何区分该图片是不是base64的?

  • 阿神
  • 阿神    2017-07-05 11:07:265楼

    $('img').each((i,item)=>{
        let src = item.src
        if(src.indexOf('data:image/jpg;base64,')>-1){
            // base64 图片操作
        }else{
            //path 图片操作
        }
    })

    +0添加回复

  • 回复
  • 给我你的怀抱
  • 给我你的怀抱    2017-07-05 11:07:263楼

    直接根据src开头匹配就行

    $('img').each((i,item)=>{
        let src = item.src
        if(src.indexOf('data:image')>-1){
            // base64 图片操作
        }else{
            //path 图片操作
        }
    })

    +0添加回复

  • 回复
  • 我想大声告诉你
  • 我想大声告诉你    2017-07-05 11:07:262楼

    要用startWith,这样效率高:

    $('img').each((i,item)=>{
        let src = item.src
        if(src.startWith('data:image')){
            // base64 图片操作
        }else{
            //path 图片操作
        }
    })

    +0添加回复

  • 回复
  • phpcn_u1582
  • phpcn_u1582    2017-07-05 11:07:261楼

    function validDataUrl(s) {
        return validDataUrl.regex.test(s);
    }
    validDataUrl.regex = /^\s*data:([a-z]+\/[a-z0-9-+.]+(;[a-z-]+=[a-z0-9-]+)?)?(;base64)?,([a-z0-9!$&',()*+;=\-._~:@\/?%\s]*?)\s*$/i;
    
    module.exports = validDataUrl;
    

    +0添加回复

  • 回复