问题 HTML5中自定义数据属性名称中的有效字符


我正在创造一些习惯 data-* 在我的网站中的属性,我很难阅读规范 这里 和 这里

我可以说 [a-z], [0-9] and '-' 是允许的,但我不能从中解读更多。

我也想 "A-Z" 在处理之前会自动转换为较低(规范链接1)但它提到不使用它们。 (规格链接2)

问题:

1)允许和不允许在自定义中使用哪些字符 data-* 属性?

2)特殊字符是否像 '_', '!', '$', etc. 允许?

谢谢。


1529
2017-09-17 18:34


起源



答案:


在规范链接2中,允许的字符来自XML中的名称生成,假定该属性已经开始 data-

":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] |
[#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | 
[#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF] | "-" |
"." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]

_ 明确列为OK

! (#x21)和 $ (#x24)是不允许的

规范链接1无关紧要。这是用于代理如何处理字符的用户代理,无论它们是否有效。


12
2017-09-17 18:50



所以,如果我正在阅读你在这里列出的内容。 ":","_","."and "-" 是唯一有效的特殊字符? - Dan
定义“特殊”。 ASCII范围之外还有很多其他内容。 - Alohci
请注意,您可能希望避免 : 也是为了避免与XML中的命名空间前缀分隔符混淆。 - Alohci
什么的 this 12月32日 - 12月12日之间的图像不是 [a-z][A-Z] or [0-9]。我的共同作用将称为“共同的”特殊字符集。 - Dan
好吧现在是时候从ASCII继续:-) - Alohci


答案:


在规范链接2中,允许的字符来自XML中的名称生成,假定该属性已经开始 data-

":" | [A-Z] | "_" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] |
[#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | 
[#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF] | "-" |
"." | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]

_ 明确列为OK

! (#x21)和 $ (#x24)是不允许的

规范链接1无关紧要。这是用于代理如何处理字符的用户代理,无论它们是否有效。


12
2017-09-17 18:50



所以,如果我正在阅读你在这里列出的内容。 ":","_","."and "-" 是唯一有效的特殊字符? - Dan
定义“特殊”。 ASCII范围之外还有很多其他内容。 - Alohci
请注意,您可能希望避免 : 也是为了避免与XML中的命名空间前缀分隔符混淆。 - Alohci
什么的 this 12月32日 - 12月12日之间的图像不是 [a-z][A-Z] or [0-9]。我的共同作用将称为“共同的”特殊字符集。 - Dan
好吧现在是时候从ASCII继续:-) - Alohci