Jas*_*ngh 11 innerhtml dart flutter
我一直试图实现这一点,我有一个字符串,里面包含很多HTML标签,它是一些编码形式的像< 和> (不带空格)在字符串之间.任何人都可以协助我删除这些标签,以便我可以得到一个简单的字符串?
Pha*_* Ky 54
您可以简单地使用没有第三个 Lib 的 RegExp 来删除标签(
</>)
String removeAllHtmlTags(String htmlText) {
RegExp exp = RegExp(
r"<[^>]*>",
multiLine: true,
caseSensitive: true
);
return htmlText.replaceAll(exp, '');
}
Run Code Online (Sandbox Code Playgroud)
Jas*_*ngh 24
最后,我使用Dart的内置html包实现了这一点
这就是我做到的
import ‘package:html/parser.dart’;
//here goes the function
String _parseHtmlString(String htmlString) {
var document = parse(htmlString);
String parsedString = parse(document.body.text).documentElement.text;
return parsedString;
}
Run Code Online (Sandbox Code Playgroud)
我不知道是否有更清洁的方法可以做到这一点,但这个对我有用.
该intl包提供了一种stripHtmlIfNeeded从字符串中去除 HTML 标记的方法。
Bidi这个包下的类提供了处理双向文本的实用方法。
import 'package:intl/intl.dart';
Bidi.stripHtmlIfNeeded("<p>Hello World</p>")
Run Code Online (Sandbox Code Playgroud)
如果您不想将整个包仅用于此功能,则以下是方法实现:
static String stripHtmlIfNeeded(String text) {
return text.replaceAll(RegExp(r'<[^>]*>|&[^;]+;'), ' ');
}
Run Code Online (Sandbox Code Playgroud)
文档:https : //api.flutter.dev/flutter/intl/Bidi/stripHtmlIfNeeded.html
| 归档时间: |
|
| 查看次数: |
3798 次 |
| 最近记录: |