Heim  >  Fragen und Antworten  >  Hauptteil

javascript – So ermitteln Sie in js, ob ein Bild Base64 ist

Mehrere IMG-Tags, jedes Tag hat eine andere Quelle,

Jetzt müssen wir eine unterschiedliche Verarbeitung für Bilder durchführen, deren Quelle Base64-codiert ist, und für Nicht-Base64-Bilder,

Wie soll JavaScript unterscheiden, ob das Bild Base64 ist?

巴扎黑巴扎黑2663 Tage vor1876

Antworte allen(6)Ich werde antworten

  • 漂亮男人

    漂亮男人2017-07-05 11:07:26

    BASE64码开头都是形如data:image/xxx;base64,xxxxxx...的,所以写个正则测试一下src就可以了

    Antwort
    0
  • 阿神

    阿神2017-07-05 11:07:26

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

    Antwort
    0
  • 为情所困

    为情所困2017-07-05 11:07:26

    非base64图片都是URL地址吗

    Antwort
    0
  • 给我你的怀抱

    给我你的怀抱2017-07-05 11:07:26

    直接根据src开头匹配就行

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

    Antwort
    0
  • 我想大声告诉你

    我想大声告诉你2017-07-05 11:07:26

    要用startWith,这样效率高:

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

    Antwort
    0
  • phpcn_u1582

    phpcn_u15822017-07-05 11:07:26

    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;
    

    Antwort
    0
  • StornierenAntwort