//用于 flutter_html处理类似 '' 标签时渲染不出来,只要是由于 style 属性中有 width 或者 height属性 导致
class RichtextUtils {
static String getHandleResult(String description) {
if (description ==null || description.isEmpty) {
return '';
}
String descriptionStr = description.replaceAllMapped(
RegExp(r']*?)style="([^"]*?)"([^>]*)>'),
(match) {
// 获取原始的 标签部分
String imgTag = match.group(0)!;
// 获取 style 属性的内容
String style = match.group(2)!;
// 移除 style 中的 width 和 height
String newStyle = style.replaceAll(RegExp(r'\s*width:\s*\d+%;?'), '').replaceAll(RegExp(r'\s*height:\s*\d+%;?'), '').trim();
// 如果 style 为空,则移除整个 style 属性
if (newStyle.isEmpty) {
imgTag = imgTag.replaceAll(RegExp(r'\s+style="[^"]*?"'), '');
} else {
imgTag = imgTag.replaceAll(RegExp(r'style="[^"]*?"'), 'style="$newStyle"');
}
return imgTag;
},
);
return descriptionStr;
}
}