2017-01-11 117 views
0

前言什麼字符必須在HTML5屬性中轉義?

存在類似問題,但它們並不足以滿足我的需求。 HTML4,XHTML和HTML5對這個問題的答案似乎有所不同,後者沒有明確的答案。此問題特定於HTML5中的屬性字符串,不應解決任何其他版本的HTML或轉義,這不是特定於用作屬性值的字符串。

問題

我寫使用自定義數據屬性代碼,我要確保我投入這些屬性的字符串是正確轉義。我想要做的最小數量的轉義是必要的值是正確和安全的。我使用雙引號(")作爲屬性分隔符。目前,我正在做的唯一轉義是用"取代雙引號。是否還有其他角色需要轉義?

+1

我不認爲答案已經從HTML 4更改爲HTML5(並且,在引用屬性值的情況下,由於XML不允許未加引號的屬性值,所以XML的任何風格)。你有沒有發現? – BoltClock

+0

@BoltClock - 'class =「&foo」'是有效的HTML 5,但是無效的HTML 4 – Quentin

+0

@Quentin:foo不是有效的字符引用權限?如果是這樣,有趣。 – BoltClock

回答

2

字符需要轉義是:

  • 無論性格您使用分隔的屬性值("'
  • &符號除非跟隨他們的字符不形成字符引用
  • 不能用當前字符編碼表示的字符

我想要做的最小數量的轉義必要的值是正確和安全的。

我建議目標是成爲簡單超過最低。你不太可能以這種方式犯錯。

  • 始終(除內部<script><style>元件,其是特殊的套管)逸出其可具有在HTML特殊含義五個字符:<>&",和'
  • 使用UTF-8到處

這些準則在裏面工作的屬性值,文本節點內,對HTML 4,對HTML 5和XML(包括XHTML)。

相關問題