dart - 如何为 HTML 转义字符串?

标签 dart

我有一个可能包含不安全 HTML 的字符串。我想转义字符串中的标签,更改 <script>&lt;script&gt;
我怎样才能用 Dart 做到这一点?

最佳答案

使用HtmlEscape来自 dart:convert .

import 'dart:convert' show HtmlEscape;

void main() {
  var unsafe = 'Hello <script>world</script>';

  var sanitizer = const HtmlEscape();

  print(sanitizer.convert(unsafe));
}

上面的应用程序打印:
Hello &lt;script&gt;world&lt;&#x2F;script&gt;

默认行为是转义撇号、大于/小于、引号和斜杠。

如果要控制转义的内容,可以新建HtmlEscapeHtmlEscapeMode .

例如,要仅转义大于/小于和斜杠,请尝试以下操作:
var sanitizer = const HtmlEscape(HtmlEscapeMode.ELEMENT);

记住 , Dart 会在字符串进入 HTML 之前自动清理它们。因此,您可能不需要手动转义 HTML 脚本。如果您调用element.setInnerHtml使用不安全的字符串,它将被清理。

关于dart - 如何为 HTML 转义字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20552371/

相关文章:

dart - 如何在 Dart Polymer 中设置分布式节点的样式

flutter - 如何在 Flutter 中点击其他小部件时打开 DropdownButton?

flutter : Custom Radio Button

dart - 如何有选择地传递可选参数?

generics - dart 如何获取带索引的枚举?

flutter - 无法找到带有第三方库的文本小部件

flutter - 在Flutter中制作2x2网格

dart - Dart 中的 window.navigator.getGamepads() 是否有效?

unit-testing - DART单元测试结果会追溯更改

Flutter:如何检查 Widget 是否是一个滚动的 widget