MDN:HTML 实体是一段以连字号(
&
)开头、以分号(;
)结尾的文本(字符串)。实体常常用于显示保留字符(这些字符会被解析为 HTML 代码)和不可见的字符(如“不换行空格”)。你也可以用实体来代替其他难以用标准键盘键入的字符。
- 不可分的空格:
-
<
(小于符号):<
-
>
(大于符号):>
-
&
(与符号):&
-
″
(双引号):"
-
'
(单引号):''
-
©
(版权符号)©
以上列出的一些实体比较容易记忆,但有一些不容易记住的您可以查看 whatwg 或使用解码工具。
HTML 实体是一段以连字符号(&
)开头、以分号(;
)结尾的字符串。用以显示不可见字符及保留字符(如 HTML 标签)
在前端,一般为了避免 XSS 攻击,会将 <>
编码为 <
与 >
,这些就是 HTML 实体编码。
在 HTML 转义时,仅仅只需要对六个字符进行编码:&
、<
、>
、"
、'
和 `。我们可以使用 he 库进行编码及转义。
// 实体编码
he.encode('<img src=""></img>') // "<img src=""></img>"
// 转义
he.escape('<img src=""></img>') // "<img src=""></img>"