base64也不一定长度就是4的倍数,比如url格式下的base64编码
1.怎么确认一个字符串是不是base64格式的?
可以通过判断字符串是否具有base64编码的特点来确定。那么base64编码之后的字符串具有哪些特点:
* 字符串只可能包含A-Z,a-z,0-9,+,/,=字符
* 字符串长度是4的倍数
* =只会出现在字符串最后,可能没有或者一个等号或者两个等号
正则判断
private static boolean isBase64(String str) {
String base64Pattern = "^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$";
return Pattern.matches(base64Pattern, str);
}
2.怎么确认一个图片是不是base格式的?
let src = item.src
if(src.indexOf('data:image/jpg;base64,')>-1){
}