首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从Dart中的字符串中删除HTML标记

从Dart中的字符串中删除HTML标记
EN

Stack Overflow用户
提问于 2018-07-30 12:16:58
回答 8查看 35.5K关注 0票数 44

我已经尝试了一段时间了,我有一个字符串,其中包含了很多HTML标记,它以某种编码形式存在,比如& lt;和& gt;(没有空格)在字符串之间。有人能帮我移除那些标签吗?这样我就可以得到一个简单的字符串了吗?

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2018-07-30 12:45:26

最后,我使用html包实现了这一点。

我就是这么做的

代码语言:javascript
运行
复制
import 'package:html/parser.dart';


//here goes the function 
String _parseHtmlString(String htmlString) {
final document = parse(htmlString);
final String parsedString = parse(document.body.text).documentElement.text;

return parsedString;
}

我不知道是否有更干净的方法来做这件事,但这个方法对我有用。

票数 92
EN

Stack Overflow用户

发布于 2019-08-18 05:18:21

您可以简单地使用没有第三个Lib的RegExp来删除标记(

)

代码语言:javascript
运行
复制
String removeAllHtmlTags(String htmlText) {
    RegExp exp = RegExp(
      r"<[^>]*>",
      multiLine: true,
      caseSensitive: true
    );

    return htmlText.replaceAll(exp, '');
  }
票数 66
EN

Stack Overflow用户

发布于 2021-04-24 09:56:32

intl包提供了一个方法stripHtmlIfNeeded,用于从字符串中删除HTML标记。

此包下的Bidi类提供了处理双向文本的实用方法。

代码语言:javascript
运行
复制
import 'package:intl/intl.dart';

Bidi.stripHtmlIfNeeded("<p>Hello World</p>")

如果您不想只为这个函数使用整个包,下面是方法实现:

代码语言:javascript
运行
复制
static String stripHtmlIfNeeded(String text) {
  return text.replaceAll(RegExp(r'<[^>]*>|&[^;]+;'), ' ');
}

文档:https://api.flutter.dev/flutter/intl/Bidi/stripHtmlIfNeeded.html

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51593790

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档