将具有特殊意义的 HTML 字符进行转义的转换器。
该转换器会在 HTML 源代码中查找具有显著意义的字符,并将它们替换为相应的 HTML 实体。
需要转义的 HTML 字符包括
&
(和号)总是需要转义。<
(小于)和>
(大于)在元素内部。"
(引号)在双引号属性值内部。'
(撇号)在单引号属性值内部。由于并非所有浏览器都理解'
,因此撇号转义为'
而不是'
。/
(斜杠)建议转义,因为在某些 HTML 语境中它可能被用来终止一个元素。
不需要转义 >
(大于),但通常发现,当同时转义 <
(小于)时,结果更容易阅读。
示例
const HtmlEscape htmlEscape = HtmlEscape();
String unescaped = 'Text & subject';
String escaped = htmlEscape.convert(unescaped);
print(escaped); // Text & subject
unescaped = '10 > 1 and 1 < 10';
escaped = htmlEscape.convert(unescaped);
print(escaped); // 10 > 1 and 1 < 10
unescaped = "Single-quoted: 'text'";
escaped = htmlEscape.convert(unescaped);
print(escaped); // Single-quoted: 'text'
unescaped = 'Double-quoted: "text"';
escaped = htmlEscape.convert(unescaped);
print(escaped); // Double-quoted: "text"
unescaped = 'Path: /system/';
escaped = htmlEscape.convert(unescaped);
print(escaped); // Path: /system/
构造函数
- 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