富文本内容缩略展示:
把 img 标签替换成【图片】iframe标签替换成【视频】
//正则替换img标签
let infoDetail = val.replace(/<s?img[^>]*>/gi, "【图片】");
//正则替换iframe标签
infoDetail = infoDetail.replace(/<s?iframe[^>]*>/gi, "");
infoDetail = infoDetail.replace(/<[ ]{0,}\/?[ ]{0,}(iframe)[ ]{0,}>/gi, "【视频】");
//处理完的字符串调用highlight()高亮方法
infoDetail = this.highlight(infoDetail);
return infoDetail;
// 高亮
highlight(rep) {
//this.searchInput为关键字
let regexp = new RegExp(this.searchInput, "g");
//第一步过滤掉富文本所有标签然后回调
return rep.replace(/(?<=>)[^>]+(?=<[/]?\w+.*>)/g, (v) => {
//通过正则把把过滤掉标签的数据关键字套个标签加上写好高亮样式的类名
return v.replace(regexp, "<span class='highlight'>" + this.searchInput + "</span>")
});
},