思路核心:
查找当前文章所有富本上传的图片路径,组成数组(正则匹配)。
1、查找图片路径组成数组
//校验通过执行查找图片路径,删除
let imgReg = /<img.*?(?:>|\/>)/gi;
//匹配src属性
let srcReg = /src=[\'\"]?([^\'\"]*)[\'\"]?/i;
let arr = ideas.details.match(imgReg);
let newArr = []
// alert('所有已成功匹配图片的数组:'+arr);
arr.forEach(v=>{
let src = v.match(srcReg);
//获取图片地址
if(src[1]){
//alert('已匹配的图片地址'+(i+1)+':'+src[1]);
if(src[1].indexOf("http://")!=-1||src[1].indexOf("https://")!=-1)// !=-1含有 ==-1不含有
{
}else{
newArr.push(src[1])
}
}
})
2、逻辑是先删除文章,成功后删图片,最后封装成公共模块方便调用
/**
* @ 查找内容 图片 路径 返回数组
* @ 参数 X 表示 内容,返回 图片数组
*/
exports.searchImgUrl=function(x){
//校验通过执行查找图片路径,删除
let imgReg = /<img.*?(?:>|\/>)/gi;
//匹配src属性
let srcReg = /src=[\'\"]?([^\'\"]*)[\'\"]?/i;
let arr = x.match(imgReg);
let newArr = []
// alert('所有已成功匹配图片的数组:'+arr);
arr.forEach(v=>{
let src = v.match(srcReg);
//获取图片地址
if(src[1]){
//alert('已匹配的图片地址'+(i+1)+':'+src[1]);
if(src[1].indexOf("http://")!=-1||src[1].indexOf("https://")!=-1)// !=-1含有 ==-1不含有
{
}else{
newArr.push(src[1])
}
}
})
return newArr
}
最后 调用
const pubFun = require('../../config/public');
let newArr = pubFun.searchImgUrl(ideas.details) newArr.forEach(v=>{
console.log(v)
fs.unlink(path.normalize(__dirname+'/../../public' +v), function(err) {
if (err) {
return console.error(err);
}
console.log("文件删除成功!");
});
})