Вопрос по html, dom – Какие символы разрешены в идентификаторах DOM? [Дубликат]

102

Possible Duplicate:
What are valid values for the id attribute in HTML?

Подчеркивания кажутся нормальными. Как насчет тире? Другие специальные символы?

Ваш Ответ

5   ответов
22

Основные типы данных HTML говорит"ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".")."

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Josh Gibson
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceededmathiasbynens.be/notes/html5-id-class.
5

ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").

Error: User Rate Limit Exceededmathiasbynens.be/notes/html5-id-class.
8

то ни правила HTML, ни XHTML не применяются. Вместо этого соответствующая спецификация - это модель DOM.

Взяв DOM Level 3 в качестве нашего источника и предположив, что по "DOM ID" Вы имеете в виду атрибут с & quot; ID & quot; Если флаг установлен, то значением является «DOMString», символами которого могут быть любые кодируемые символы UTF-16.

16-bit unit

The base unit of a DOMString. This indicates that indexing on a DOMString occurs in units of 16 bits. This must not be misunderstood to mean that a DOMString can store arbitrary 16-bit units. A DOMString is a character string encoded in UTF-16; this means that the restrictions of UTF-16 as well as the other relevant restrictions on character strings must be maintained. A single character, for example in the form of a numeric character reference, may correspond to one or two 16-bit units.

Конечно, это, вероятно, не то, что вы хотите, и ответ Людвига Вайнцерля - это то, что вы искали. Однако разумно понимать, что не все DOM могут быть сериализованы как HTML или XHTML и что DOM имеет собственный набор правил.

106

Поскольку XHTML - это XML, применяются правила для идентификаторов XML:

Values of type ID MUST match the Name production.

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]

Источник:Расширяемый язык разметки (XML) 1.0 (пятое издание) 2.3

Для HTML применяется следующее:

id = name [CS]
This attribute assigns a name to an element. This name must be unique in a document.

ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").

Источник:Спецификация HTML 4, глава 6, идентификационный токен

Error: User Rate Limit Exceeded[#xF900-#xFDCF]Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded/^[a-z]+[a-z0-9\-_:\.]*$/i.
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
2

иначе xhtml, Филипп прав. Никаких пробелов или специальных символов (конечно, ни одного, которые не требуют экранирования) для атрибутов id. Только алфавит из 52 символов, прописные и строчные буквы, цифры 0-9, дефисы ("-"), подчеркивания ("_"), двоеточия (":") и точки (""). )

Похожие вопросы