• 对HTML操作的工具类


    工具类包含:去除富文本中的HTML标签、将富文本中的HTML标签里的Base64以序列化形式返回、取得HTML中所有图片的 URL。

    1. using Newtonsoft.Json;
    2. using System.Collections.Generic;
    3. using System.Text.RegularExpressions;
    4. namespace myutil.Common.Helper
    5. {
    6. public static class HtmlHelper
    7. {
    8. #region 去除富文本中的HTML标签
    9. ///
    10. /// 去除富文本中的HTML标签
    11. ///
    12. ///
    13. ///
    14. ///
    15. public static string ReplaceHtmlTag(string html, int length = 0)
    16. {
    17. string strText = System.Text.RegularExpressions.Regex.Replace(html, "<[^>]+>", "");
    18. strText = System.Text.RegularExpressions.Regex.Replace(strText, "&[^;]+;", "");
    19. if (length > 0 && strText.Length > length)
    20. return strText.Substring(0, length);
    21. return strText;
    22. }
    23. #endregion
    24. #region 将富文本中的HTML标签里的Base64以序列化形式返回
    25. ///
    26. /// 将富文本中的HTML标签里的Base64以序列化形式返回
    27. ///
    28. /// 序列化字符串
    29. ///
    30. public static string GetHtmlBase64ToImgStrList(string html)
    31. {
    32. var preStr = ";
    33. var lastStr = "\\\"/>";
    34. var imgStrList = new List<string>();
    35. //切割获取base64字符串
    36. while (html.IndexOf(preStr) > -1)
    37. {
    38. var startPos = html.IndexOf(preStr);
    39. var endPos = html.Substring(startPos).IndexOf(lastStr) + startPos;
    40. if (endPos > -1)
    41. {
    42. var imgStr = html.Substring(startPos + preStr.Length, endPos - startPos - preStr.Length);
    43. html = html.Substring(endPos);
    44. if (!imgStr.StartsWith("data:image"))
    45. {
    46. continue;
    47. }
    48. imgStrList.Add(imgStr);
    49. }
    50. }
    51. return JsonConvert.SerializeObject(imgStrList);
    52. }
    53. #endregion
    54. ///
    55. /// 取得HTML中所有图片的 URL。
    56. ///
    57. /// HTML代码
    58. /// 图片的URL列表
    59. public static string[] GetHtmlImageUrlList(string sHtmlText)
    60. {
    61. // 定义正则表达式用来匹配 img 标签
    62. Regex regImg = new Regex(@"]*?\bsrc[\s\t\r\n]*=[\s\t\r\n]*[""']?[\s\t\r\n]*(?[^\s\t\r\n""'<>]*)[^<>]*?/?[\s\t\r\n]*>", RegexOptions.IgnoreCase);
    63. // 搜索匹配的字符串
    64. MatchCollection matches = regImg.Matches(sHtmlText);
    65. int i = 0;
    66. string[] sUrlList = new string[matches.Count];
    67. // 取得匹配项列表
    68. foreach (Match match in matches)
    69. sUrlList[i++] = match.Groups["imgUrl"].Value;
    70. return sUrlList;
    71. }
    72. }
    73. }

  • 相关阅读:
    【牛客网刷题系列 之 Verilog快速入门】~ 位拆分与运算
    Kafka:容器安装篇
    网络安全(黑客)——自学2024
    多线程之生产者与消费者
    linux权限维持(二)
    什么是Java中的“内存屏障“(Memory Barrier)?它们有什么作用?
    SIM8262E-M2,SIM8262A-M2,SIM8260C-M2,SIM8260C 5G定位模组支持多频段
    经纬高到北东天的坐标相互转换matlab
    论文阅读-可泛化深度伪造检测的关键
    go语言相关bug
  • 原文地址:https://blog.csdn.net/censhenping/article/details/132763925