我真的坚持了这一部分。首先,我成功地从summernote编辑器中收集了用户上传的所有img源。但是当我尝试循环它们以检查是否将img链接编码为base64并尝试对其进行解码并将其保存在一起时。但是在我的代码中,fo循环一直无限循环。 img标签的循环列表是否存在问题?
function getAllImages() {
let images = $(".note-editable p").find('img').map(function() {
return $(this).attr('src')
}).get();
console.logt(images);
let base64regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;
let imgSrc = [];
for(let i=0; images.length; i++){
if(base64regex.test(images[i])) {
console.log("["+images[i]+"]");
let decoded=atob(images[i]);
console.log("img decoded");
imgSrc.push(decoded);
}
else if(base64regex.test(images[i]) == false){
console.log("["+images[i]+"]");
imgSrc.push(images[i]);
}
}
return imgSrc;
}
答案 0 :(得分:1)
请在for循环中使用i < images.length
。
function getAllImages() {
let images = $(".note-editable p").find('img').map(function() {
return $(this).attr('src')
}).get();
console.logt(images);
let base64regex = /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;
let imgSrc = [];
for(let i=0; i < images.length; i++){
if(base64regex.test(images[i])) {
console.log("["+images[i]+"]");
let decoded=atob(images[i]);
console.log("img decoded");
imgSrc.push(decoded);
}
else if(base64regex.test(images[i]) == false){
console.log("["+images[i]+"]");
imgSrc.push(images[i]);
}
}
return imgSrc;
}