DOM ID中允许哪些字符?

时间:2009-07-02 22:53:12

标签: html dom

  

可能重复:
  What are valid values for the id attribute in HTML?

下划线看起来很好。破折号怎么样?其他特殊字符?

5 个答案:

答案 0 :(得分:109)

实际上HTML和XHTML之间存在差异。 由于XHTML是XML,因此XML ID的规则适用:

  

ID类型的值必须与名称生成匹配。

NameStartChar ::=   ":" | [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]

NameChar     ::=      NameStartChar | "-" | "." | [0-9] | #xB7 |
                        [#x0300-#x036F] | [#x203F-#x2040]

来源:Extensible Markup Language (XML) 1.0 (Fifth Edition) 2.3

对于HTML,以下适用:

  

id = name [CS]
  此属性为元素指定名称。该名称在文档中必须是唯一的。

     

ID和NAME令牌必须以a开头   信([A-Za-z]),可以遵循   任意数量的字母,数字   ([0-9]),连字符(“ - ”),下划线   (“_”),冒号(“:”)和句号   ( “”)。

来源:HTML 4 Specification, Chapter 6, ID Token

答案 1 :(得分:22)

W3C规范Basic HTML data types“ID和NAME令牌必须以字母([A-Za-z])开头,后面可以跟任意数量的字母,数字([0-9] ]),连字符(“ - ”),下划线(“_”),冒号(“:”)和句号(“。”)。“

答案 2 :(得分:9)

如果我们从字面上理解你的问题的标题,那么HTML和XHTML规则都不适用。相反,相关的规范是DOM。

以DOM Level 3为源,并假设“DOM ID”表示设置了“ID”标志的属性,则该值为“DOMString”,其中的字符可以是任何UTF-16可编码的字符。

  

16位单位

     

DOMString的基本单位。这表明在DOMString上建立索引   以16位为单位出现。这必须   不要被误解为a   DOMString可以存储任意16位   单位。 DOMString是一个字符   以UTF-16编码的字符串;这意味着   认为UTF-16的限制为   以及其他相关的   对字符串的限制必须   保持。单个字符,用于   示例以数字的形式   字符引用,可以对应   一个或两个16位单元。

当然,这可能不是你想要的,Ludwig Weinzierl的回答就是你想要的。然而,明智的是要理解并非所有DOM都可以序列化为HTML或XHTML,并且DOM拥有它自己的一套规则。

答案 3 :(得分:5)

根据HTML 4.0规范

  

ID和NAME令牌必须以字母([A-Za-z])开头,后面可以跟任意数量的字母,数字([0-9]),连字符(“ - ”),下划线(“ _“),冒号(”:“)和句号(”。“)。

答案 4 :(得分:2)

出于有效的html aka xhtml的目的,Philippe是正确的。 id属性没有空格或特殊字符(当然不需要转义)。只有52个字符的字母,大写和小写,数字0-9,连字符(“ - ”),下划线(“_”),冒号(“:”)和句点(“。”)