使用rich-text渲染富文本
<rich-text :nodes="details"></rich-text>
需要处理图片的宽度和style的双引号问题
/**
* 转换富文本的图片最大为100%
* 转换行内样式的双引号问题
*/
function formatRichText(html) { //控制小程序中图片大小
let newContent = html.replace(/<img[^>]*>/gi, function(match, capture) {
match = match.replace(/style="[^"]+"/gi, '').replace(/style='[^']+'/gi, '');
match = match.replace(/width="[^"]+"/gi, '').replace(/width='[^']+'/gi, '');
match = match.replace(/height="[^"]+"/gi, '').replace(/height='[^']+'/gi, '');
return match;
});
newContent = newContent.replace(/style="[^"]+"/gi, function(match, capture) {
match = match.replace(/width:[^;]+;/gi, 'max-width:100%;').replace(/width:[^;]+;/gi, 'max-width:100%;');
return match;
});
newContent = newContent.replace(/<br[^>]*\/>/gi, '');
newContent = newContent.replace(/\<img/gi,
'<img style="max-width:100%;height:auto;"');
var stylePattern = /style="[^=>]*"[\s+\w+=|>]/g;
var innerQuotePattern = /(?<!=)"(?!>)/g;
return newContent.replace(stylePattern, function(matches) {
return matches.replace(innerQuotePattern, '\'');
});
// return newContent;
}