思路核心:
查找当前文章所有富本上传的图片路径,组成数组(正则匹配)。
1、查找图片路径组成数组
//校验通过执行查找图片路径,删除 let imgReg = /|\/>)/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 = /|\/>)/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("文件删除成功!"); }); })复制代码