HtmlEscapefinal

将具有特殊意义的 HTML 字符进行转义的转换器。

该转换器会在 HTML 源代码中查找具有显著意义的字符,并将它们替换为相应的 HTML 实体。

需要转义的 HTML 字符包括

  • &(和号)总是需要转义。
  • <(小于)和 >(大于)在元素内部。
  • "(引号)在双引号属性值内部。
  • '(撇号)在单引号属性值内部。由于并非所有浏览器都理解 &apos;,因此撇号转义为 &#39; 而不是 &apos;
  • /(斜杠)建议转义,因为在某些 HTML 语境中它可能被用来终止一个元素。

不需要转义 >(大于),但通常发现,当同时转义 <(小于)时,结果更容易阅读。

示例

const HtmlEscape htmlEscape = HtmlEscape();
String unescaped = 'Text & subject';
String escaped = htmlEscape.convert(unescaped);
print(escaped); // Text &amp; subject

unescaped = '10 > 1 and 1 < 10';
escaped = htmlEscape.convert(unescaped);
print(escaped); // 10 &gt; 1 and 1 &lt; 10

unescaped = "Single-quoted: 'text'";
escaped = htmlEscape.convert(unescaped);
print(escaped); // Single-quoted: &#39;text&#39;

unescaped = 'Double-quoted: "text"';
escaped = htmlEscape.convert(unescaped);
print(escaped); // Double-quoted: &quot;text&quot;

unescaped = 'Path: /system/';
escaped = htmlEscape.convert(unescaped);
print(escaped); // Path: &#47;system&#47;
继承关系

构造函数

HtmlEscape([HtmlEscapeMode mode = HtmlEscapeMode.unknown])
创建转义 HTML 字符的转换器。
const

属性

hashCode int
该对象的哈希码。
no setterinherited
mode HtmlEscapeMode
转换器使用的 HtmlEscapeMode
final
runtimeType Type
对象的运行时类型的表示。
no setterinherited

方法

bind(Stream<String> stream) Stream<String>
转换提供的 stream
inherited
cast<RS, RT>() Converter<RS, RT>
提供 Converter<RS, RT> 视图。
inherited
convert(String text) String
转换 input 并返回转换的结果。
override
fuse<TT>(Converter<String, TT> other) Converter<String, TT>
将此与 other 结合。
inherited
noSuchMethod(Invocation invocation) → dynamic
当访问不存在的方法或属性时被调用。
inherited
startChunkedConversion(Sink<String> sink) StringConversionSink
开始进行分块转换。
override
toString() String
此对象的字符串表示形式。
inherited

运算符

operator ==(Object other) bool
等号运算符。
inherited