Multiple img tags, the src of each tag is different,
Now we need to do different processing for images whose src is base64 encoded and non-base64 images,
How should javascript distinguish whether the image is base64?
BASE64 codes always start with the form data:image/xxx;base64,xxxxxx...
, so just write a regular expression and test src
$('img').each((i,item)=>{
let src = item.src
if(src.indexOf('data:image/jpg;base64,')>-1){
// base64 圖片操作
}else{
//path 圖片操作
}
})
Just match according to the beginning of src
$('img').each((i,item)=>{
let src = item.src
if(src.indexOf('data:image')>-1){
// base64 圖片操作
}else{
//path 圖片操作
}
})
You need to use startWith, which is more efficient:
$('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;