12345678910111213141516171819202122232425262728 |
- //用于 flutter_html处理类似 '<img src="*****" style="width:100%;height:auto" />' 标签时渲染不出来,只要是由于 style 属性中有 width 或者 height属性 导致
- class RichtextUtils {
- static String getHandleResult(String description) {
- if (description ==null || description.isEmpty) {
- return '';
- }
- String descriptionStr = description.replaceAllMapped(
- RegExp(r'<img\s+([^>]*?)style="([^"]*?)"([^>]*)>'),
- (match) {
- // 获取原始的 <img> 标签部分
- 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;
- }
- }
|