我已经尝试了一段时间了,我有一个字符串,其中包含了很多HTML标记,它以某种编码形式存在,比如& lt;和& gt;(没有空格)在字符串之间。有人能帮我移除那些标签吗?这样我就可以得到一个简单的字符串了吗?
发布于 2018-07-30 12:45:26
最后,我使用html包实现了这一点。
我就是这么做的
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;
}我不知道是否有更干净的方法来做这件事,但这个方法对我有用。
发布于 2019-08-18 05:18:21
您可以简单地使用没有第三个Lib的RegExp来删除标记(
)
String removeAllHtmlTags(String htmlText) {
RegExp exp = RegExp(
r"<[^>]*>",
multiLine: true,
caseSensitive: true
);
return htmlText.replaceAll(exp, '');
}发布于 2021-04-24 09:56:32
intl包提供了一个方法stripHtmlIfNeeded,用于从字符串中删除HTML标记。
此包下的Bidi类提供了处理双向文本的实用方法。
import 'package:intl/intl.dart';
Bidi.stripHtmlIfNeeded("<p>Hello World</p>")如果您不想只为这个函数使用整个包,下面是方法实现:
static String stripHtmlIfNeeded(String text) {
return text.replaceAll(RegExp(r'<[^>]*>|&[^;]+;'), ' ');
}文档:https://api.flutter.dev/flutter/intl/Bidi/stripHtmlIfNeeded.html
https://stackoverflow.com/questions/51593790
复制相似问题