必须在HTML5属性中转义哪些字符?

时间:2017-01-11 16:46:44

标签: html5

前言

存在类似的问题,但它们并不足以满足我的需求。对于HTML4,XHTML和HTML5,这个问题的答案似乎有所不同,对后者没有明确的答案。此问题特定于HTML5中的属性字符串,不应解决任何其他版本的HTML或转义,而不是特定于用作属性值的字符串。

问题

我正在编写使用自定义数据属性的代码,我想确保我放入这些属性的字符串被正确转义。我想进行必要的最小量的转义,以使值正确和安全。我使用双引号(")作为属性分隔符。目前,我唯一正在做的就是用"替换双引号。还有其他需要转义的角色吗?

1 个答案:

答案 0 :(得分:2)

需要转义的字符是:

  • 您使用什么字符来界定属性值("'
  • &符号除非跟随它们的字符不形成字符引用
  • 当前字符编码无法表示的字符
  

我想进行必要的最小量的转义,以使值正确且安全。

我建议简单优先于最小。你不太可能以这种方式犯错误。

  • 始终(除了<script><style>内部特殊内容的元素外)转义HTML中可能具有特殊含义的五个字符:<>,{{ 1}},&"
  • 到处使用UTF-8

这些指南适用于属性值,文本节点内部,HTML 4,HTML 5和XML(包括XHTML)。