转换器,用于转义在 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
- 此对象的哈希码。无设置器继承
- mode → HtmlEscapeMode
- 转换器使用的 HtmlEscapeMode。final
- runtimeType → Type
- 对象运行时类型的表示。无设置器继承
方法
-
bind(
Stream< String> stream) → Stream<String> - 转换提供的
stream
。继承 -
cast<
RS, RT> () → Converter< RS, RT> - 为此流转换器提供
Converter<RS, RT>
视图。继承 -
convert(
String text) → String - 转换
input
并返回转换结果。override -
fuse<
TT> (Converter< String, TT> other) → Converter<String, TT> - 将此对象与
other
对象合并。继承 -
noSuchMethod(
Invocation invocation) → dynamic - 当访问不存在的方法或属性时被调用。继承
-
startChunkedConversion(
Sink< String> sink) → StringConversionSink - 开始分块转换。override
-
toString(
) → String - 此对象的字符串表示。继承
运算符
-
operator ==(
Object other) → bool - 相等运算符。继承