110 votes

Quels sont les caractères autorisés dans les DOM ID ?

Duplicata possible :
Quelles sont les valeurs valables pour l'attribut id en HTML ?

Les underscores semblent bien. Et les tirets ? D'autres caractères spéciaux ?

112voto

Ludwig Weinzierl Points 6461

En fait il y a une différence entre le HTML et le XHTML. XHTML est du XML les règles de XML Id s'appliquent:

Les valeurs de type ID DOIT correspondre au Nom de la 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]

Source: Extensible Markup Language (XML) 1.0 (Cinquième Édition) 2.3

Pour le code HTML est le suivant:

id = nom [CS]
Cet attribut permet d'attribuer un nom à un élément. Ce nom doit être unique dans un document.

L'ID et le NOM de jetons doit commencer par une lettre ([A-Za-z]) et peut être suivi par un nombre quelconque de lettres, de chiffres ([0-9]), des tirets ("-"), des traits de soulignement ("_"), deux-points (":"), et des périodes de (".").

Source: Spécification HTML 4, Chapitre 6, l'ID de Jeton

23voto

RichieHindle Points 98544

La spécification du W3C Types de données HTML de base dit " Les jetons ID et NAME doivent commencer par une lettre ([A-Za-z]) et peuvent être suivis d'un nombre quelconque de lettres, de chiffres ([0-9]), de tirets ("-"), de traits de soulignement (" `` "), les deux-points (" :") et les points (".")."_

9voto

Alohci Points 30645

Si l'on prend le titre de votre question au pied de la lettre, alors ni les règles HTML ni les règles XHTML ne s'appliquent. Au lieu de cela, la spécification pertinente est la spécification DOM.

En prenant DOM Level 3 comme source, et en supposant que par "DOM ID" vous voulez dire un attribut avec l'indicateur "ID" activé, alors la valeur est un "DOMString", dont les caractères peuvent être n'importe quel caractère encodable UTF-16.

Unité de 16 bits

L'unité de base d'un DOMString. Ceci indique que l'indexation sur un DOMString se fait par unités de 16 bits. Ceci ne doit pas ne doit pas être interprété comme signifiant qu'un DOMString peut stocker des unités arbitraires de 16 bits. arbitraires. Un DOMString est une chaîne de caractères de caractères codée en UTF-16 ; cela signifie que que les restrictions de l'UTF-16 ainsi que ainsi que les autres restrictions pertinentes restrictions pertinentes sur les chaînes de caractères doivent être maintenues. Un seul caractère, par exemple par exemple sous la forme d'une référence numérique référence de caractère, peut correspondre à une ou deux unités de 16 bits.

Bien sûr, ce n'est probablement pas ce que vous voulez, et la réponse de Ludwig Weinzierl correspond à ce que vous recherchiez. Cependant, il est sage de comprendre que tous les DOM ne peuvent pas être sérialisés en HTML ou XHTML et que le DOM a son propre ensemble de règles.

5voto

Philippe Gerber Points 6360

Selon les spécifications du HTML 4.0

Les jetons ID et NAME doivent commencer par une lettre ([A-Za-z]) et peuvent être suivis d'un nombre quelconque de lettres, de chiffres ([0-9]), de tirets ("-"), de traits de soulignement ("_"), de deux points (" :") et de points (".").

2voto

Pour ce qui est du html valide ou xhtml, Philippe a raison. Pas d'espaces ou de caractères spéciaux (en tout cas aucun qui nécessite un échappement) pour les attributs id. Il suffit d'utiliser l'alphabet à 52 caractères, les majuscules et les minuscules, les chiffres de 0 à 9, les tirets ("-"), les traits de soulignement ("_"), les deux points (" :") et les points (".").

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X