Berbilang tag img, setiap tag mempunyai src yang berbeza,
Kini kita perlu melakukan pemprosesan yang berbeza untuk imej yang srcnya dikodkan base64 dan imej bukan base64,
Bagaimanakah JavaScript harus membezakan sama ada imej itu base64?
Kod
BASE64 sentiasa bermula dengan bentuk data:image/xxx;base64,xxxxxx..., jadi tulis ungkapan biasa dan uji src
data:image/xxx;base64,xxxxxx...
$('img').each((i,item)=>{ let src = item.src if(src.indexOf('data:image/jpg;base64,')>-1){ // base64 图片操作 }else{ //path 图片操作 } })
Adakah semua imej bukan base64 alamat URL?
Hanya padankan mengikut permulaan src
$('img').each((i,item)=>{ let src = item.src if(src.indexOf('data:image')>-1){ // base64 图片操作 }else{ //path 图片操作 } })
Anda perlu menggunakan startWith, yang lebih cekap:
$('img').each((i,item)=>{ let src = item.src if(src.startWith('data:image')){ // base64 图片操作 }else{ //path 图片操作 } })
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;
Kod
BASE64 sentiasa bermula dengan bentuk
data:image/xxx;base64,xxxxxx...
, jadi tulis ungkapan biasa dan uji srcAdakah semua imej bukan base64 alamat URL?
Hanya padankan mengikut permulaan src
Anda perlu menggunakan startWith, yang lebih cekap: