我正在開發用於服務視網膜圖像的JS插件。識別這些圖像的屬性應該是以下情況:自定義數據屬性名稱中允許使用哪些字符(不允許)?
[email protected]
, [email protected]
, [email protected]
。
你能告訴我這些屬性是否有效嗎?在HTML和XHTML中的自定義數據屬性名稱中允許使用哪些字符(不允許)?
我正在開發用於服務視網膜圖像的JS插件。識別這些圖像的屬性應該是以下情況:自定義數據屬性名稱中允許使用哪些字符(不允許)?
[email protected]
, [email protected]
, [email protected]
。
你能告訴我這些屬性是否有效嗎?在HTML和XHTML中的自定義數據屬性名稱中允許使用哪些字符(不允許)?
見definition of the data-*
attribute在W3C HTML5建議:
在HTML5中,名稱必須是XML兼容(連帶ASCII-小寫自動)。
在XHTML5中,名稱必須是與XML兼容的並且不能包含大寫的ASCII字母。
的definition of XML-compatible說,它
:
字符Name
生產在XML 1.0規範這Name
production列出了哪些字符匹配允許。
TL;博士:對於data-
之後的部分,你可以使用下列字符:
0
- 9
a
- z
A
- Z
(不XHTML5)-
_
.
·
和字符從這些Unicode範圍:
‿
⁀
)因此@
(U + 0040)是不允許的。
請參考HTML5規格的Before attribute name state部分:
- U + 0009 CHARACTER TABULATION(製表符)
- U + 000A換行(LF)
- ù + 000C FORM FEED(FF)
- U + 0020 SPACE
- 忽略該角色。
- U + 002F SOLIDUS(/)
切換到自關閉開始標記狀態。- U + 003E GREATER-THAN SIGN(>) 切換到數據狀態。發出當前標記令牌。
大寫ASCII字母- 開始當前標記令牌中的新屬性。將該屬性的名稱設置爲當前輸入字符的小寫版本(將0x0020添加到字符的代碼點),並將其值賦給空字符串。切換到屬性名稱狀態。
- U + 0000 NULL
- 解析錯誤。在當前標記標記中開始一個新屬性。將該屬性的名稱設置爲U + FFFD REPLACEMENT CHARACTER字符,並將其值賦給空字符串。切換到屬性名稱狀態。
- U + 0022引號(「)
- U + 0027撇號(')
- U + 003C小於號(<)
- U + 003D等號(=)
- 解析錯誤。按照下面的「其他」條目處理它。
- EOF
解析錯誤。切換到數據狀態。重新編輯EOF字符。- 其他
在當前標記標記中開始一個新屬性。將該屬性的名稱設置爲當前輸入字符,並將其值賦給空字符串。切換到屬性名稱狀態。
在簡單的話:
它說,除了製表符,換行符,換頁,空間,固相線,大於號,引號,撇號更大的所有文字和等號會被處理屬性名稱的一部分。就個人而言,我不會嘗試推動這個邊緣案例。