HtmlEscapeModefinal

HTML 转义模式。

允许指定一个根据转义结果将要使用的上下文而定的 HTML 转义模式。相关的上下文包括

  • 作为 HTML 元素的文本内容。
  • 作为(单或双引号中的)属性值。

所有模式都需要转义 &(和号)字符,并且可能允许转义更多字符。

可以使用 HtmlEscapeMode.new 构造函数创建自定义转义模式。

示例

const htmlEscapeMode = HtmlEscapeMode(
  name: 'custom',
  escapeLtGt: true,
  escapeQuot: false,
  escapeApos: false,
  escapeSlash: false,
 );

const HtmlEscape htmlEscape = HtmlEscape(htmlEscapeMode);
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 &gt; 1 and 1 &lt; 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/

构造函数

HtmlEscapeMode({String name = "custom", bool escapeLtGt = false, bool escapeQuot = false, bool escapeApos = false, bool escapeSlash = false})
创建一个自定义转义模式。
const

属性

escapeApos bool
是否转义单引号。
final
escapeLtGt bool
是否转义小于号和大于号。
final
escapeQuot bool
是否转义双引号。
final
escapeSlash bool
是否转义斜杠。
final
hashCode int
该对象的哈希码。
no setterinherited
runtimeType Type
对象的运行时类型表示。
no setterinherited

方法

noSuchMethod(Invocation invocation) → dynamic
当访问不存在的方法或属性时被调用。
inherited
toString() String
该对象的字符串表示。
override

运算符

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

常量

属性 → const HtmlEscapeMode
用于双引号HTML属性值的转义模式。
元素 → const HtmlEscapeMode
用于HTML元素内容的转义模式。
单引号属性 → const HtmlEscapeMode
用于单引号HTML属性值的转义模式。
未知 → const HtmlEscapeMode
默认转义模式,转义所有字符。