Plusieurs balises img, chaque balise a un src différent,
Maintenant, nous devons effectuer un traitement différent pour les images dont le src est encodé en base64 et les images non base64,
Comment JavaScript doit-il distinguer si l'image est en base64??
Les codes BASE64 commencent toujours par la forme data:image/xxx;base64,xxxxxx...
, alors écrivez simplement une expression régulière et testez src
$('img').each((i,item)=>{
let src = item.src
if(src.indexOf('data:image/jpg;base64,')>-1){
// base64 圖片操作
}else{
//path 圖片操作
}
})
Est-ce que toutes les adresses URL des images ne sont pas en base64??
Juste correspondre selon le début de src
$('img').each((i,item)=>{
let src = item.src
if(src.indexOf('data:image')>-1){
// base64 圖片操作
}else{
//path 圖片操作
}
})
Vous devez utiliser startWith, qui est plus efficace :
$('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;