richText_utils.dart 1.2 KB

12345678910111213141516171819202122232425262728
  1. //用于 flutter_html处理类似 '<img src="*****" style="width:100%;height:auto" />' 标签时渲染不出来,只要是由于 style 属性中有 width 或者 height属性 导致
  2. class RichtextUtils {
  3. static String getHandleResult(String description) {
  4. if (description ==null || description.isEmpty) {
  5. return '';
  6. }
  7. String descriptionStr = description.replaceAllMapped(
  8. RegExp(r'<img\s+([^>]*?)style="([^"]*?)"([^>]*)>'),
  9. (match) {
  10. // 获取原始的 <img> 标签部分
  11. String imgTag = match.group(0)!;
  12. // 获取 style 属性的内容
  13. String style = match.group(2)!;
  14. // 移除 style 中的 width 和 height
  15. String newStyle = style.replaceAll(RegExp(r'\s*width:\s*\d+%;?'), '').replaceAll(RegExp(r'\s*height:\s*\d+%;?'), '').trim();
  16. // 如果 style 为空,则移除整个 style 属性
  17. if (newStyle.isEmpty) {
  18. imgTag = imgTag.replaceAll(RegExp(r'\s+style="[^"]*?"'), '');
  19. } else {
  20. imgTag = imgTag.replaceAll(RegExp(r'style="[^"]*?"'), 'style="$newStyle"');
  21. }
  22. return imgTag;
  23. },
  24. );
  25. return descriptionStr;
  26. }
  27. }